问题描述
我正在研究游戏中的玩家移动,但是四处移动(权威服务器)时会有一些提示。我正在进行客户端预测和服务器协调,以防止这种情况发生。但是我不知道我做得是否正确。
当客户端收到玩家位置数据包时,我会获得所需的信息(输入编号,玩家位置,玩家速度和玩家输入向量),并将这些值应用于玩家。然后,它重新应用服务器尚未处理的输入,并模拟物理过程并重复执行,直到处理完所有输入为止。
accel = serverInputVector;
rb.veLocity = serverVeLocity;
for (int i = serverState; i <= clientMove; i++) {
if (movePackets.TryGetValue(i,out State state)) {
// set input and rotation
rawInput = state.input;
orientation.localEulerAngles = new Vector3(0,state.rotation);
// update
Updateinput();
HandleMovement();
Physics.Simulate(Time.fixedDeltaTime);
if (i == clientMove) {
orientation.localEulerAngles = new Vector3(0,state.rotation);
}
}
}
我这样做正确吗?我不希望运动非常顺畅,但是在跳跃和冲刺时确实非常敏捷。谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)