// INTERNALS

        private void ProcessQueuedBehaviours()
        {
            if (m_QueuedBehaviours.Count > 0)
            {
                // Add all queued to general.

                m_GeneralBehaviours.AddRange(m_QueuedBehaviours);

                SortList(m_GeneralBehaviours);

                // Assign player queued behaviours to player and remove from general.

                AssignQueuedToPlayers();

                // Setup data on new behaviours.

                for (int index = 0; index < m_QueuedBehaviours.Count; ++index)
                {
                    TrueSyncManagedBehaviour tsmb = m_QueuedBehaviours[index];

                    if (tsmb == null)
                    {
                        continue;
                    }

                    tsmb.SetGameInfo(m_Lockstep.LocalPlayer.playerInfo, m_Lockstep.Players.Count);
                    tsmb.OnSyncedStart();
                }

                // Clear queue.

                m_QueuedBehaviours.Clear();
            }
        }
        private void CheckQueuedBehaviours()
        {
            if (queuedBehaviours.Count > 0) {
                generalBehaviours.AddRange(queuedBehaviours);
                initGeneralBehaviors(queuedBehaviours, true);

                for (int index = 0, length = queuedBehaviours.Count; index < length; index++) {
                    TrueSyncManagedBehaviour tsmb = queuedBehaviours[index];

                    tsmb.SetGameInfo(lockstep.LocalPlayer.playerInfo, lockstep.Players.Count);
                    tsmb.OnSyncedStart();
                }

                queuedBehaviours.Clear();
            }
        }