// CALLBACK private void OnRemovedRigidbody(IBody i_Body) { GameObject go = PhysicsManager.GetGameObject(i_Body); if (go != null) { TrueSyncObject trueSyncObject = go.GetComponent <TrueSyncObject>(); if (trueSyncObject != null) { m_TsBehaviourCache.Clear(); for (int index = 0; index < trueSyncObject.behaviourCount; ++index) { TrueSyncBehaviour behaviour = trueSyncObject.GetTrueSyncBehaviourByIndex(index); if (behaviour != null) { m_TsBehaviourCache.Add(behaviour); } } RemoveFromTSMBList(m_QueuedBehaviours, m_TsBehaviourCache); RemoveFromTSMBList(m_GeneralBehaviours, m_TsBehaviourCache); foreach (List <TrueSyncManagedBehaviour> list in m_BehavioursPerPlayer.Values) { RemoveFromTSMBList(list, m_TsBehaviourCache); } m_TsBehaviourCache.Clear(); } } }
public void RegisterTrueSyncObject(TrueSyncObject i_TrueSyncObject) { if (i_TrueSyncObject == null) { return; } // Add True Sync Behaviours to QueuedBehaviours. for (int index = 0; index < i_TrueSyncObject.behaviourCount; ++index) { TrueSyncBehaviour trueSyncBehaviour = i_TrueSyncObject.GetTrueSyncBehaviourByIndex(index); if (trueSyncBehaviour == null) { continue; } TrueSyncManagedBehaviour trueSyncManagedBehaviour = NewManagedBehavior(trueSyncBehaviour); m_QueuedBehaviours.Add(trueSyncManagedBehaviour); } // Initialize Object. InitializeObject(i_TrueSyncObject); // Callback i_TrueSyncObject.OnRegistration(); }