在Unity中,当您将两个四元数相乘时,它将第二个四元数(以全局轴表示)沿第一个四元数之后生成的局部轴应用于第一个四元数。
Quaternion
)
所以,
如果你想做相当于
Rotate(q2, Space.Self)
,在哪里
q1
转换是原始的吗?
rotation
和
q3
转换是新的吗
旋转
,你想要
Quaternion q3 = q1 * q2
.
如果你想申请怎么办
q2
到
Q1
沿着之前的轴线
Q1
应用?事实证明,这相当于
Q1
沿局部轴线
Q2
.
例如,应用
Q2
沿着全球轴
Q1
将其背面朝下旋转,顶部朝右旋转。考虑到这一点
Q1
沿局部轴线
p2
同时将其背面朝下旋转,顶部朝右旋转。它们产生了相同的方向!
那这是什么意思?
如果你想申请
Q2
到
Q1
沿着之前的轴线
Q1
应用,然后执行
Quaternion q3 = q2 * q1
.
这相当于做
Rotate(q2, Space.World)
哪里
Q1
转换是原始的吗?
旋转
和
Q3
是新的吗
旋转
.
不像
Rotate
,可以使用此运算符相对于父对象的轴旋转对象!如果你愿意的话
transform.localRotation = q2 * transform.localRotation
,将相对于父对象的轴旋转对象。