我是Unity的新手,所以请多多包涵。我正在尝试使用四元数不断旋转GameObject(球体),但是我无法从示例中弄清楚。
我成功使用...
transform.Rotate(new Vector3(0, 0, 1), 50f * Time.deltaTime);
但是我想复制一个球体如何在3d空间中旋转,而不仅仅是沿1个轴旋转。
从我发现的示例中,旋转一旦到达“终点”就停止了。
很抱歉,如果这是一个基本问题。任何帮助将不胜感激!
答案 0 :(得分:1)
如果您想像小行星一样不断旋转,但绕某些自定义轴旋转,则只需通过该轴而不是Vector3(0, 0, 1)
。
此向量可以是(1,2,3)之类的任何东西,但我不记得是否必须对其进行标准化。
编辑:
如果您需要更多控制权,则可以创建几个四元数并将其连接:
Quaternion q1 = Quaternion.AngleAxis(10f * Time.deltaTime, Vector3.right);
Quaternion q2 = Quaternion.AngleAxis(20f * Time.deltaTime, Vector3.forward);
Quaternion q3 = Quaternion.AngleAxis(30f * Time.deltaTime, Vector3.up);
Quaternion q = q1 * q2 * q3;
您只需要了解q
将取决于乘法顺序,因为对于四元数,q1 * q2
与q2 * q1
不同。