四元数用于表示旋转。
它们结构紧凑,不受万向锁影响,可以轻松插值。
Unity 内部使用四元数来表示所有旋转。
它们基于复数,不容易理解。
您几乎不会有机会访问或修改单个四元数分量(x、y、z、w);
大多数情况下,您只需要获取现有旋转(例如,来自 Transform),然后使用它们构造新的旋转
(例如,在两个旋转之间平滑插值)。
您绝大多数时间使用的四元数函数为:
Quaternion.LookRotation、Quaternion.Angle、Quaternion.Euler、Quaternion.Slerp、Quaternion.FromToRotation 和 Quaternion.identity。(其他函数仅用于一些十分奇特的用例。)
您可以使用 Quaternion.operator * 对旋转进行旋转,或对向量进行旋转。
| identity | 单位旋转(只读)。 |
| eulerAngles | 返回旋转的欧拉角表示。 |
| this[int] | 分别使用 [0]、[1]、[2]、[3] 访问 x、y、z、w 分量。 |
| w | 四元数的 W 分量。除非您十分了解四元数,否则不要直接进行此种修改。 |
| x | 四元数的 X 分量。除非您十分了解四元数,否则不要直接进行此种修改。 |
| y | 四元数的 Y 分量。除非您十分了解四元数,否则不要直接进行此种修改。 |
| z | 四元数的 Z 分量。除非您十分了解四元数,否则不要直接进行此种修改。 |
| Quaternion | 使用给定的 x、y、z、w 分量构造新的四元数。 |
| Set | 设置现有四元数的 x、y、z 和 w 分量。 |
| SetFromToRotation | 创建一个从 fromDirection 旋转到 toDirection 的旋转。 |
| SetLookRotation | 使用指定的 forward 和 upwards 方向创建旋转。 |
| ToAngleAxis | 将旋转转换为“角-轴”表示形式(角度以度为单位)。 |
| ToString | 返回该四元数的整齐格式化的字符串。 |
| Angle | 返回两个旋转 a 和 b 之间的角度(以度为单位)。 |
| AngleAxis | 创建一个围绕 axis 旋转 angle 度的旋转。 |
| Dot | 两个旋转之间的点积。 |
| Euler | Returns a rotation that rotates z degrees around the z axis, x degrees around the x axis, and y degrees around the y axis (in that order). |
| FromToRotation | 创建一个从 fromDirection 旋转到 toDirection 的旋转。 |
| Inverse | 返回 rotation 的反转。 |
| Lerp | 在 a 和 b 之间插入 t,然后对结果进行标准化处理。参数 t 被限制在 [0, 1] 范围内。 |
| LerpUnclamped | 在 a 和 b 之间插入 t,然后对结果进行标准化处理。参数 t 不受限制。 |
| LookRotation | 使用指定的 forward 和 upwards 方向创建旋转。 |
| RotateTowards | 将旋转 from 向 to 旋转。 |
| Slerp | 在 a 和 b 之间以球形方式插入 t。参数 t 被限制在 [0, 1] 范围内。 |
| SlerpUnclamped | 在 a 和 b 之间以球形方式插入 t。参数 t 不受限制。 |
| operator * | 将旋转 lhs 和 rhs 组合到一起。 |
| operator == | 两个四元数是否相等? |