void LogicUpdate() { if (SpaceData.Instance.frameList.Count > 0) { currFrame = SpaceData.Instance.frameList.Dequeue(); Dictionary <int, InputDataBase> dicInputData = new Dictionary <int, InputDataBase>(); for (int i = 0; i < SpaceData.Instance.SpacePlayers.Count; i++) { InputData data = new InputData(); data.ownerID = SpaceData.Instance.SpacePlayers[i].ownerID; dicInputData[data.ownerID] = data; } for (int i = 0; i < currFrame.operation.Count; i++) { FS_ENTITY_DATA e = currFrame.operation[i]; InputData data = new InputData(); data.Deserialize(e); dicInputData[data.ownerID] = data; } CheckQueuedBehaviours(); OnStepUpdate(dicInputData.Values.ToList()); PhysicsManager.instance.UpdateStep(); } }
// Update is called once per frame void Update() { renderTime += Time.deltaTime; if (renderTime >= timeSlice) { renderTime = 0; if (SpaceData.Instance.frameList.Count > 0) { int count = SpaceData.Instance.frameList.Count; timeSlice = DeltaTime / (count <= ThresholdFrame ? 1 : count / ThresholdFrame); FS_FRAME_DATA framedata = SpaceData.Instance.frameList.Dequeue(); List <InputDataBase> allInputData = new List <InputDataBase>(); if (framedata.operation.Count <= 1 && framedata.operation[0].cmd_type == 0) { for (int i = 0; i < SpaceData.Instance.SpacePlayers.Count; i++) { InputData data = new InputData(); data.ownerID = SpaceData.Instance.SpacePlayers[i].ownerID; allInputData.Add(data); } } else { for (int i = 0; i < framedata.operation.Count; i++) { FS_ENTITY_DATA e = framedata.operation[i]; InputData data = new InputData(); data.Deserialize(e); allInputData.Add(data); } } OnStepUpdate(allInputData); PhysicsManager.instance.UpdateStep(); } } }
// Update is called once per frame void Update() { renderTime += Time.deltaTime; if (renderTime >= timeSlice) { renderTime = 0; if (SpaceData.Instance.frameList.Count > 0) { int count = SpaceData.Instance.frameList.Count; timeSlice = DeltaTime / (count <= ThresholdFrame ? 1 : count / ThresholdFrame); currFrame = SpaceData.Instance.frameList.Dequeue(); Dictionary <int, InputDataBase> dicInputData = new Dictionary <int, InputDataBase>(); for (int i = 0; i < SpaceData.Instance.SpacePlayers.Count; i++) { InputData data = new InputData(); data.ownerID = SpaceData.Instance.SpacePlayers[i].ownerID; dicInputData[data.ownerID] = data; } for (int i = 0; i < currFrame.operation.Count; i++) { FS_ENTITY_DATA e = currFrame.operation[i]; InputData data = new InputData(); data.Deserialize(e); dicInputData[data.ownerID] = data; } CheckQueuedBehaviours(); OnStepUpdate(dicInputData.Values.ToList()); PhysicsManager.instance.UpdateStep(); } } }