public void DoUpdate(float deltaTime) { if (!IsRunning) { return; } if (_hasRecvInputMsg) { if (_gameStartTimestampMs == -1) { _gameStartTimestampMs = LTime.realtimeSinceStartupMS; } } if (_gameStartTimestampMs <= 0) { return; } _tickSinceGameStart = (int)((LTime.realtimeSinceStartupMS - _gameStartTimestampMs) / NetworkDefine.UPDATE_DELTATIME); if (_constStateService.IsVideoMode) { return; } if (__debugRockbackToTick > 0) { GetService <ICommonStateService>().IsPause = true; RollbackTo(__debugRockbackToTick, 0, false); __debugRockbackToTick = -1; } if (_commonStateService.IsPause) { return; } _cmdBuffer.DoUpdate(deltaTime); //client mode no network if (_constStateService.IsClientMode) { DoClientUpdate(); } else { while (inputTick <= inputTargetTick) { SendInputs(inputTick++); } DoNormalUpdate(); } }