微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

服务器对帐方法

如何解决服务器对帐方法

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

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

        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 举报,一经查实,本站将立刻删除。