How do i access a network instantiated object?

Hi i am making a network game and for now i want to identify the players by colour/texture. I don’t want to change the prefab every time that someone spawns in the game so the only way i can see to do it is change it after i have ran Network.Instantiate().

Is it possible to get an object after this and then change the texture/material used or even just the colour?

If that is not possible is there anyway to instantiate to object to change it and put it on the “network” in another way?

Network.Instantiate automatically sets up network views on all clients. This means that you can set up a script on any individual object, that goes something like this-

public Color myColour = set it however you need to on the client;
if(networkView.isMine)
{
    networkView.RPC("SetColour", RPCMode.All, myColour.r, myColour.g, myColour.b);
}
// elsewhere

[RPC]
void SetColour(float r, float g, float b)
{
    myColour = new Color(r, g, b);
}