// 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();
        }