/// <summary> /// 保存玩家操作 /// </summary> /// <param name="data">帧数据包</param> /// <param name="seed">随机种子</param> public void SavePlayerOperation(JArray data, int seed) { if (fsData == null || data == null) { Debug.LogError("SavePlayerOperation Error!!!"); return; } fsData.SRandom = SeedRandom.New(seed); List <JArray> oData = new List <JArray>(); for (int i = 0; i < data.Count; i++) { int logicFrame = (int)data[i][0]; if (logicFrame != fsData.PlayerOperationList.Count) { //Debug.Log("logicFrame!= fsData.PlayerOperationList.Count" + logicFrame + ":" + fsData.PlayerOperationList.Count); } long time = (long)data[i][1]; JArray op = (JArray)data[i][2]; fsData.PlayerOperationList.Add(op); } fsData.PauseState = false; int difference = fsData.PlayerOperationList.Count - fsData.GameLogicFrame; // 追帧 临时代码 //UnityEngine.Debug.Log("游戏逻辑帧 = " + fsData.GameLogicFrame + " 差帧" + difference); if (difference > data.Count + 1) { float scale = difference / data.Count; scale = scale > 10 ? 10 : scale; GTime.TimeScale = scale; } else { GTime.TimeScale = 1; } }