public static void UnserializeInbound(CNetworkPlayer _cNetworkPlayer, CNetworkStream _cStream) { while (_cStream.HasUnreadData) { CNetworkViewId cCockpitObjectViewId = _cStream.ReadNetworkViewId(); ENetworkAction eAction = (ENetworkAction)_cStream.ReadByte(); GameObject cCockpitObject = CNetwork.Factory.FindObject(cCockpitObjectViewId); CCockpit cCockpit = cCockpitObject.GetComponent <CCockpit>(); switch (eAction) { case ENetworkAction.EnterCockpit: cCockpit.HandleEnterCockpit(_cNetworkPlayer.PlayerId); break; case ENetworkAction.LeaveCockpit: cCockpit.HandleLeaveCockpit(_cNetworkPlayer.PlayerId); break; default: Debug.LogError(string.Format("Unknown network action ({0})")); break; } } }
void OnDestroy() { CCockpit cCockpit = gameObject.GetComponent <CCockpit>(); // Unsubscribe from cockpit events cCockpit.EventPlayerEnter -= new CCockpit.HandlePlayerEnter(OnPlayerEnterCockpit); cCockpit.EventPlayerLeave -= new CCockpit.HandlePlayerLeave(OnPlayerLeaveCockpit); }
void Start() { CCockpit cCockpit = gameObject.GetComponent <CCockpit>(); // Subscribe to cockpit events cCockpit.EventPlayerEnter += new CCockpit.HandlePlayerEnter(OnPlayerEnterCockpit); cCockpit.EventPlayerLeave += new CCockpit.HandlePlayerLeave(OnPlayerLeaveCockpit); }