包含此页的版本:
不含此页的版本:
Unity 使用左手坐标系。在 Unity 中,您可以使用欧拉角和四元数来表示旋转和方向。这些表示是等效的,但具有不同的用途和限制。
通常,您可以在场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表使用变换组件变换组件确定场景中每个对象的位置、旋转和缩放。每个游戏对象都有一个 Transform。更多信息
请参阅术语表,将方向显示为欧拉角。但是,Unity 在内部将旋转和方向存储为四元数,这对于可能导致万向节锁定的更复杂的运动非常有用。
坐标系描述对象在三维空间中的位置。Unity 使用左手坐标系:正 x 轴指向右侧,正 y 轴指向上方,正 z 轴指向前方。Unity 的左手坐标系意味着沿正 z 轴观察时,从正 x 轴到正 y 轴的旋转方向是逆时针方向。
在 Transform 坐标中,Unity 使用 vector 属性显示旋转Transform.eulerAnglesX、Y 和 Z。与法线向量不同,这些值实际上表示绕 X、Y 和 Z 轴的旋转角度(以度为单位)。
欧拉角旋转绕三个轴执行三个单独的旋转。Unity 围绕 z 轴、x 轴和 y 轴按顺序执行欧拉旋转。这种旋转方法是外在旋转;旋转发生时,原始坐标系不会改变。
旋转游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表,您可以输入希望每个轴旋转多远的角度值到变换组件中。要使用脚本旋转游戏对象,请使用Transform.eulerAngles.如果转换为欧拉角来进行计算和旋转,则可能会出现万向节锁定问题。
当 3D 空间中的物体失去自由度并且只能在二维空间内旋转时,称为云台锁定。如果两个轴变得平行,则欧拉角可能会发生万向节锁定。 如果不在脚本中将旋转值转换为欧拉角,则使用四元数应该会防止万向节锁定。
如果您确实遇到万向节锁定问题,您可以使用以下方法避免欧拉角Transform.RotateAround用于轮换。您还可以使用Quaternion.AngleAxis并将它们相乘(四元数乘法依次应用每个旋转)。
四元数为 3D 空间中空间方向和旋转的独特表示提供数学符号。四元数使用四个数字对 3D 中围绕单位轴的旋转方向和角度进行编码。这四个值是复数,而不是角度或度数。您可以查看四元数的数学以获取更多信息。
Unity 将旋转值转换为四元数以存储它们,因为四元数旋转计算起来高效且稳定。Unity 编辑器不会将旋转显示为四元数,因为单个四元数不能表示绕任何轴大于 360 度的旋转。
如果使用 Quaternion 类,则可以直接使用四元数。如果使用脚本进行旋转,则可以使用 Quaternion 类和函数来创建和更改旋转值。您可以将值作为欧拉角应用于旋转,但您需要将它们存储为四元数以避免出现问题。
要在四元数和欧拉角之间进行转换以以您喜欢的方式查看和编辑旋转,您可以使用脚本:
Quaternion.Euler功能。Quaternion.eulerAngles功能。