|
|
@@ -26,29 +26,39 @@ namespace ET.Client
|
|
|
private static void Update(this LSClientUpdater self)
|
|
|
{
|
|
|
Room room = self.GetParent<Room>();
|
|
|
- long timeNow = TimeHelper.ServerFrameTime();
|
|
|
+ long timeNow = TimeHelper.ServerNow();
|
|
|
Scene clientScene = room.GetParent<Scene>();
|
|
|
-
|
|
|
- if (timeNow < room.FixedTimeCounter.FrameTime(room.PredictionFrame + 1))
|
|
|
- {
|
|
|
- return;
|
|
|
- }
|
|
|
|
|
|
- // 最多只预测5帧
|
|
|
- if (room.PredictionFrame - room.AuthorityFrame > 5)
|
|
|
+ int i = 0;
|
|
|
+ while (true)
|
|
|
{
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- ++room.PredictionFrame;
|
|
|
- OneFrameInputs oneFrameInputs = self.GetOneFrameMessages(room.PredictionFrame);
|
|
|
- room.Update(oneFrameInputs, room.PredictionFrame);
|
|
|
-
|
|
|
+ if (timeNow < room.FixedTimeCounter.FrameTime(room.PredictionFrame + 1))
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 最多只预测5帧
|
|
|
+ if (room.PredictionFrame - room.AuthorityFrame > 5)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- FrameMessage frameMessage = NetServices.Instance.FetchMessage<FrameMessage>();
|
|
|
- frameMessage.Frame = room.PredictionFrame;
|
|
|
- frameMessage.Input = self.Input;
|
|
|
- clientScene.GetComponent<SessionComponent>().Session.Send(frameMessage);
|
|
|
+ ++room.PredictionFrame;
|
|
|
+ OneFrameInputs oneFrameInputs = self.GetOneFrameMessages(room.PredictionFrame);
|
|
|
+ room.Update(oneFrameInputs, room.PredictionFrame);
|
|
|
+ room.SpeedMultiply = ++i;
|
|
|
+
|
|
|
+ FrameMessage frameMessage = NetServices.Instance.FetchMessage<FrameMessage>();
|
|
|
+ frameMessage.Frame = room.PredictionFrame;
|
|
|
+ frameMessage.Input = self.Input;
|
|
|
+ clientScene.GetComponent<SessionComponent>().Session.Send(frameMessage);
|
|
|
+
|
|
|
+ long timeNow2 = TimeHelper.ServerNow();
|
|
|
+ if (timeNow2 - timeNow > 5)
|
|
|
+ {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private static OneFrameInputs GetOneFrameMessages(this LSClientUpdater self, int frame)
|