【发布时间】:2020-05-25 08:05:53
【问题描述】:
我正在开发一个非常基本的播放器控制器,并且在使用刚体播放器时遇到了很多口吃问题。我还有一个运行非常流畅的角色控制器播放器,两个测试都在高 fps 600 ish(垂直同步关闭)。在这两种情况下,我都使用统一电影机的 freelook 相机,并将 CinemachineBrain 更新模式设置为固定刚体场景。我尝试在刚体上打开插值并更改 FixedUpdateTimestep(我试图避免),但我想知道它是否与我移动刚体的方式有关?下面是一个显示问题的视频,请确保全屏观看并注意积木楼梯(以防不清楚红色播放器是基于 Rigidbody 的,而绿色播放器使用 CharacterController 组件)。您可以看到场景之间的平滑度存在巨大差异。
我的刚体运动代码(很简单);
void Update()
{
_isGrounded = Physics.CheckSphere(_groundChecker.position, GroundDistance, Ground, QueryTriggerInteraction.Ignore);
_inputs = Vector3.zero;
_inputs.x = Input.GetAxis("Horizontal");
_inputs.z = Input.GetAxis("Vertical");
if (_inputs != Vector3.zero)
transform.forward = _inputs;
}
void FixedUpdate()
{
_body.MovePosition(_body.position + _inputs * Speed * Time.fixedDeltaTime);
}
【问题讨论】:
标签: c# unity3d rigid-bodies