What is the purpose of Inherited members for network view?

So I have several objects that are instantiated over the network. (The server instantiates them).

I set the “tag” value to be either “Blue” or “Red” and then procede to run the game.

Things work fine except when I say:

if(this.networkView.gameObject.tag == "Blue")
			{	
				GUI.backgroundColor = Color.blue;
			}
			if(this.networkView.gameObject.tag  == "Red")
			{
				GUI.backgroundColor = Color.red;
			}

The following code will work on the server, but not the client (which means the tag on the server is set but not on the client). Why doesn’t the network view respect tag? I have also tried it without referencing the gameObject as well. I am really confused why I can’t use the inherited members for the network view.

I have read through the network tutorials and have not had any luck with this problem.
So far I have had to use RPC functions for transferring data from scripts to client scripts. Which I believe is fine, but the object data should be preserved from server to client right? Especially if I do a Network.Instantiate?

Cheers,
Bm

Unity networking only sends data you specifically serialise for sending over the network. This is deliberately designed to save bandwidth. For a transform its usually just rotation and position.

It you need to send tag information you must explicitly choose to do so in your OnSerializeNetworkView method. See the documentation for more details.