예제 #1
0
 public void Dispose()
 {
     if (NetworkChannel != null)
     {
         NetworkChannel.Dispose();
     }
     if (SnapshotPool != null)
     {
         SnapshotPool.Dispose();
     }
     if (OCController != null)
     {
         OCController.Dispose();
     }
 }
예제 #2
0
 public void Dispose()
 {
     if (CompensationSnapshotPool != null)
     {
         CompensationSnapshotPool.Dispose();
     }
     if (Bin2dManager != null)
     {
         Bin2dManager.Dispose();
     }
     if (UpdateMessagePool != null)
     {
         UpdateMessagePool.Dispose();
     }
 }
예제 #3
0
        public void Dispose()
        {
#if UNITY_SOURCE_MODIFIED && !UNITY_EDITOR
            UnityProfiler.EnableProfiler(false);
#endif
            _state = RoomState.Disposing;
            DisposePlayerConnections();
            if (_bin2DManager != null)
            {
                _bin2DManager.Dispose();
            }

            if (_sendSnapshotManager != null)
            {
                _sendSnapshotManager.Dispose();
            }

            if (_compensationSnapshotPool != null)
            {
                _compensationSnapshotPool.Dispose();
            }
            GameModuleManagement.Dispose();
            try
            {
                ResetContexts(true);
                _sessionStateMachine.ShutDown();
                _contexts.Reset();
            }
            catch (Exception e)
            {
                _logger.ErrorFormat("Reset Contexts Error {0}", e);
            }
            _contexts = null;

            DestoryObjectUnderDefaultGoBattleServer();
            _coRoutineManager.StartCoRoutine(UnloadScene());

            _logger.InfoFormat("Server Room is Disposing...");
        }