/// <summary> /// 相当于俩秒更新一次界面状态,在俩秒时间内,都添加到bufferStats.Current()中 /// </summary> /// <param name="time"></param> public void UpdateTime(float time) { timerAcc += time; if (timerAcc >= BUFFER_LIFETIME) { bufferStats.MoveNext(); bufferStats.Current().Clear(); timerAcc = 0f; } }
/// <summary> /// 对刚体body的位置和旋转数据的一个同步校验 /// </summary> /// <param name="tick"></param> private void SendInfoChecksum(int tick) { Debug.Log("SendInfoChecksum"); if (replayMode != ReplayMode.LOAD_REPLAY) { SyncedInfo syncedInfo = bufferSyncedInfo.Current(); syncedInfo.playerId = localPlayer.ID; syncedInfo.tick = tick; syncedInfo.checksum = GetChecksumForSyncedInfo(); bufferSyncedInfo.MoveNext(); RaiseEvent(CHECKSUM_CODE, SyncedInfo.Encode(syncedInfo)); } }