0

我是 3D 设计的新手,所以这可能是一个愚蠢的问题。

我无法使用四元数旋转来模拟车轮外倾角。

我的理解是WheelCollider沿 X 轴旋转,而在我的情况下,“视觉轮”沿 Z 轴旋转 80°,因此旋转沿 Y 轴发生。

此代码适用于 FL 轮,因为它的轴与对撞机轴对齐,而不适用于 FR 轮。

collider.GetWorldPose(out Vector3 position, out Quaternion rotation);
visual.transform.position = position;
// initialVisualRotation is the wuaternion rotation of the visual at Startup
// in this case: X=0 Y=0 Z=80
visual.transform.rotation = initialVisualRotation * rotation;

这些是我的右前轮 (FR) 的局部和全局旋转轴。

局部轴 全局轴

如何在不改变初始轴的情况下“调整”车轮旋转(就像我对 FL 车轮所做的那样)?在这些情况下是否需要采用一些四元数运算?

4

1 回答 1

0

不必处理混乱的变换的一种解决方法是使对象成为另一个空对象的子对象。这样您可以使父对象旋转以使轮子倾斜,但子对象(实际轮子)的原始轴始终不会被弄乱使用 and 所以你可以使用简单的脚本始终围绕相同的轴旋转它,尽管整个系统(对象的层次结构)被“倾斜”,但它总是相同的。父母负责围绕一个轴旋转,孩子围绕另一个轴旋转。我认为您需要退后一步并以这种方式安排您的预制件,因为您似乎没有这样做。

于 2020-11-15T19:00:50.513 回答