所以我试图在 Unity 中实现一个汽车控制器脚本,WheelTransform
每次更新都将位置和旋转设置为与WheelCollider
位置和旋转相同,除了一件事外,它都可以正常工作:当翻译时WheelTransform
,如果汽车行驶缓慢,WheelTransform
翻译如预期,但当汽车开得更快时,WheelTransform
位置和实际位置之间有明显的偏移WheelCollider
。这是WheelTransform
位置和旋转设置为与位置和旋转相同的代码WheelCollider
:
private void UpdateWheels()
{
UpdateWheelPos(frontLeftWheelCollider, frontLeftWheelTransform);
UpdateWheelPos(frontRightWheelCollider, frontRightWheelTransform);
UpdateWheelPos(rearLeftWheelCollider, rearLeftWheelTransform);
UpdateWheelPos(rearRightWheelCollider, rearRightWheelTransform);
}
private void UpdateWheelPos(WheelCollider wheelCollider, Transform trans)
{
Vector3 pos;
Quaternion rot;
wheelCollider.GetWorldPose(out pos, out rot);
trans.rotation = rot;
trans.position = pos;
}
我发现并尝试过的每一个汽车控制器脚本都在本节中使用相同的代码,我也尝试过使用没有任何碰撞器的 2d 精灵,WheelTransform
但脚本或更改都没有WheelTransform
解决问题。在此先感谢您的帮助。