/// <summary> /// 更新游戏逻辑 /// </summary> private void UpdateFrameLogic() { //如果当前逻辑帧无可执行操作时、则暂停游戏、进行锁帧 // if (fsData.GameLogicFrame >= fsData.PlayerOperationList.Count) // { // // Debug.Log("fsData.GameLogicFrame >= fsData.PlayerOperationList.Count"); // fsData.GameLogicFrame = fsData.PlayerOperationList.Count - 1; // fsData.PauseState = true; // return; // } if (fsData.ReplayState) { Debug.Log("fsData.ReplayState"); } else { this.fsData.FrameRunningTime = (int)(this.fsData.FixFrameLen * 1000 * this.fsData.GameLogicFrame); SeedRandom.Init(fsData.GameLogicFrame); // Unity物理刷新前调用(逻辑帧处理) MapManager.Instance.UpdatePreMapFrameSynLogic(fsData.PlayerOperationList[fsData.GameLogicFrame]); #if UNITY_EDITOR if (!Physics.autoSimulation) { // Unity物理引擎刷新一次 Physics.Simulate((float)fsData.FixFrameLen); // Unity物理刷新后调用 MapManager.Instance.UpdatePostMapFrameSynLogic(); } #else // Unity物理引擎刷新一次 Physics.Simulate((float)fsData.FixFrameLen); // Unity物理刷新后调用 MapManager.Instance.UpdatePostMapFrameSynLogic(); #endif } }