public void uLink_OnSerializeNetworkView(uLink.BitStream stream, uLink.NetworkMessageInfo info)
{
uLink.NetworkViewID prevPossesedID = PossessedCharacterViewID;
stream.Serialize(ref PossessedCharacterViewID);
stream.Serialize(ref _IsDoingMenuStuff);
stream.Serialize(ref _Score);
stream.Serialize(ref _IsSpectating);
stream.Serialize(ref _Ping);
if (stream.isReading)
{
if (Possession == null)
{
// see if possession id from network is not null
// see if new possession object from that id is not null
// then assign
PlayerScript character = TryGetPlayerScriptFromNetworkViewID(PossessedCharacterViewID);
if (character != null) Possession = character;
}
else
{
// see if new possession id is different from current possession id
// assign new possession, even if null
if (prevPossesedID != PossessedCharacterViewID)
{
Possession = TryGetPlayerScriptFromNetworkViewID(PossessedCharacterViewID);
}
}
}
}