我知道这是一个经常被问到的问题,但是我还没有为我的具体场景找到一个解决方案:
我正在创建一个服务器权威游戏,服务器计算移动并以Vector3的形式发送给客户端。这个Vector3在接收时存储在一个变量中,在更新时,位置被设置为等于Vector3。
相机旋转是客户端授权的,旋转是基于鼠标增量计算的,并添加到当前旋转。Y轴旋转应用于整个身体(旋转),X轴旋转应用于相机(向上和向下看)。这些都在后期更新
中完成当移动和观看一个物体时,它似乎抖动得非常快。我发现的所有解决方案都不起作用,我认为这是因为它们的设计是为了修复相机抖动与刚体运动
在处理物理、旋转、位置和其他相关内容时,更建议使用FixedUpdate
而不是Update
。
为什么会这样?
https://docs.unity3d.com/ScriptReference/MonoBehaviour.FixedUpdate.html
嗯,Fixed Update
被称为固定帧率帧,在物理上更可靠。
如果有人有这个问题,我通过使用rb.MoveRotation
而不是transform.rotation
旋转字符来修复它,同时将其插值模式设置为interpolate