四元数用于表示旋转。
四元数是四个实数 {x,y,z,w} 的四元组。四元数是欧拉角表示的数学上方便的替代方案。您可以插值一个四元数,而不会出现万向节锁。您还可以使用四元数将一系列旋转连接成单个表示。
Unity 内部使用四元数来表示所有旋转。
在大多数情况下,您可以使用来自例如 Transform.localRotation 或 Transform.rotation 的方法的现有旋转来构建新的旋转。例如,使用现有旋转在两个旋转之间平滑插值。最常用的四元数函数如下:Quaternion.LookRotation、Quaternion.Angle、Quaternion.Euler、Quaternion.Slerp、Quaternion.FromToRotation 和 Quaternion.identity。
您可以使用 Quaternion.operator * 来将一个旋转绕另一个旋转旋转,或者将向量绕旋转旋转。
请注意,Unity 期待四元数是归一化的。
identity | 恒等旋转(只读)。 |
eulerAngles | 返回或设置旋转的欧拉角表示(以度为单位)。 |
normalized | 返回此四元数,其大小为 1(只读)。 |
this[int] | 分别使用 [0]、[1]、[2]、[3] 访问 x、y、z、w 分量。 |
w | 四元数的 W 分量。不要直接修改四元数。 |
x | 四元数的 X 分量。除非您精通四元数,否则不要直接修改它。 |
y | 四元数的 Y 分量。除非您精通四元数,否则不要直接修改它。 |
z | 四元数的 Z 分量。除非您精通四元数,否则不要直接修改它。 |
四元数 | 使用给定的 x、y、z、w 分量构造新的四元数。 |
Set | 设置现有四元数的 x、y、z 和 w 分量。 |
SetFromToRotation | 创建一个从 fromDirection 旋转到 toDirection 的旋转。 |
SetLookRotation | 创建一个具有指定向前方向和向上方向的旋转。 |
ToAngleAxis | 将旋转转换为角度轴表示(角度以度为单位)。 |
ToString | 返回此四元数的格式化字符串。 |
Angle | 返回两个旋转 a 和 b 之间的角度(以度为单位)。所得角度范围从 0 到 180。 |
AngleAxis | 创建一个绕轴旋转 angle 度的旋转。 |
Dot | 两个旋转之间的点积。 |
Euler | 返回一个旋转,该旋转绕 z 轴旋转 z 度,绕 x 轴旋转 x 度,绕 y 轴旋转 y 度;按此顺序应用。 |
FromToRotation | 创建一个从 fromDirection 旋转到 toDirection 的旋转。 |
Inverse | 返回旋转的逆。 |
Lerp | 通过 t 对 a 和 b 进行插值,然后对结果进行归一化。 |
LerpUnclamped | 通过 t 对 a 和 b 进行插值,然后对结果进行归一化。参数 t 没有被夹紧。 |
LookRotation | 创建一个具有指定向前方向和向上方向的旋转。 |
Normalize | 将此四元数转换为具有相同方向但大小为 1.0 的四元数。 |
RotateTowards | 将旋转从 towards 旋转到 to。 |
Slerp | 通过 t 的比率对单位四元数 a 和 b 进行球面线性插值。 |
SlerpUnclamped | 通过 t 对单位四元数 a 和 b 进行球面线性插值。 |
operator * | 组合旋转 lhs 和 rhs。 |
operator == | 两个四元数是否相等? |