Prefab Scale Unpredictable, Set to (0,1,1) and (0,0,0) Randomly

See Attached Image for Reference. Basically, I’m building a multi-player RPG and everything seems to go fine with the networking. Except that RANDOMLY a Prefab will be set to a scale of either (0,1,1) or (0,0,0). It is never the local player’s prefab, and it happens more on the host than the clients.

Really, none of that should matter since I use the same RPC to instantiate for host and client.
void Client_LoadMultiplayerScene(string scene, int prefix)
{

// Create Player Prefab
GameReference.localPlayerObject = Network.Instantiate(playerCharacterPrefab, Vector3.zero, Quaternion.identity, 0) as GameObject;
GameReference.localPlayerObject.name = GameReference.playerCharacterScript.Name;
GameReference.localPlayerObject.transform.localScale.Set(1,1,1);

// So we only recieve messages for new prefix
Network.SetLevelPrefix(prefix);

Application.LoadLevel(scene);

}

So this function instantiates the player prefabs and adds them to the list of players. The Prefabs have DoNotDestroyOnLoad called to preserve their stats and data. I’ve been having this problem for a while so I decided to try and hard code to localScale here, where I move everyone to the spawn point:
// Move Players to Level Spawnpoint
for(int cnt = 0; cnt < GameReference.multiplayerManagerScript.NetworkedPlayerPrefabs.Count; cnt++)
{
GameReference.multiplayerManagerScript.NetworkedPlayerPrefabs[cnt].transform.localScale.Set(1,1,1);
GameReference.multiplayerManagerScript.NetworkedPlayerPrefabs[cnt].transform.position = spawnPoint.transform.position;
}

The players all get moved to the spawn point, but their localScale still seems totally random. Maybe I just hard coded it wrong, but honestly I don’t see why I should have to hard code it at all. Perhaps it’s some flaw with Network.Instantiate? I am also using the PlayerRemote and PlayerLocal scripts for interpolation from the unity wiki (perhaps something wrong in there?) Thanks to anyone who takes the time. Cheers.

  • Erik

Just did some debugs on local and world scale: both claim it’s set to 1.0, 1.0, 1.0 even when I see it as 0, 0, 0 in the inspector. :-/