有没有办法读取围绕局部轴的旋转?

时间:2019-10-07 09:43:55

标签: unity3d rotation

我需要读取一个对象绕其自身轴线的旋转。

我有一个对象,我们称其为控制器,可以绕其轴自由旋转。我还有三个对象,每个对象都必须绕其轴之一旋转。

当控制器绕其自身的X轴旋转时,第一个对象绕其自身的X轴旋转。 当控制器绕其自身的Y轴旋转时,第二个对象绕其自身的Y轴旋转。 当控制器绕其自身的Z轴旋转时,第三个对象绕其自身的Z轴旋转。

每个对象仅需绕右轴旋转即可移动,而不能与其他物体一起移动。就像我要将控制器的transform.rotation分为三个不同的对象一样。

我无法选择控制器的旋转方式,只能读取它。

1 个答案:

答案 0 :(得分:1)

如果我理解您提出的问题正确,那么您可以这样做吗?

Vector3 localEulers = yourController.localEulerAngles;
Vector3 tmp = localEulers;
tmp.y = 0;
tmp.z = 0;
objectX.localEulerAngles = tmp;
tmp = localEulers;
tmp.x = 0;
tmp.z = 0;
objectY.localEulerAngles = tmp;
tmp = localEulers;
tmp.x = 0;
tmp.y = 0;
objectZ.localEulerAngles = tmp;