版本: Unity 6 (6000.0)
语言英语
  • C#

四元数

UnityEngine 中的结构体

/

实现于:UnityEngine.CoreModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每个建议更改,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后重试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

描述

四元数用于表示旋转。

四元数是四个实数 {x,y,z,w} 的四元组。四元数是欧拉角表示的数学上方便的替代方案。您可以插值一个四元数,而不会出现万向节锁。您还可以使用四元数将一系列旋转连接成单个表示。

Unity 内部使用四元数来表示所有旋转。

在大多数情况下,您可以使用来自例如 Transform.localRotationTransform.rotation 的方法的现有旋转来构建新的旋转。例如,使用现有旋转在两个旋转之间平滑插值。最常用的四元数函数如下:Quaternion.LookRotationQuaternion.AngleQuaternion.EulerQuaternion.SlerpQuaternion.FromToRotationQuaternion.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 ==两个四元数是否相等?