服务器对帐方法

问题描述

我正在研究游戏中的玩家移动,但是四处移动(权威服务器)时会有一些提示。我正在进行客户端预测和服务器协调,以防止这种情况发生。但是我不知道我做得是否正确。

当客户端收到玩家位置数据包时,我会获得所需的信息(输入编号,玩家位置,玩家速度和玩家输入向量),并将这些值应用于玩家。然后,它重新应用服务器尚未处理的输入,并模拟物理过程并重复执行,直到处理完所有输入为止。

        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 (将#修改为@)