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

Transform.Rotate

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

描述

使用 Transform.Rotate 以多种方式旋转游戏对象。旋转通常以欧拉角提供,而不是四元数。

您可以指定世界坐标系或局部坐标系中的旋转。

世界坐标系旋转使用场景的坐标系,因此当您开始旋转游戏对象时,其 x、y 和 z 轴与 x、y 和 z 世界轴对齐。因此,如果您在世界空间中旋转一个立方体,则其轴线与世界对齐。当您在 Unity 编辑器的场景视图中选择一个立方体时,旋转Gizmos会显示用于左右、上下和前后旋转轴。移动这些Gizmos将在轴周围旋转立方体。如果您取消选择然后重新选择立方体,则轴线将重新开始与世界对齐。

局部旋转使用游戏对象本身的坐标系。因此,新创建的立方体使用其 x、y 和 z 轴设置为零旋转。旋转立方体将更新旋转轴。如果您取消选择然后重新选择立方体,则轴线将显示在与之前相同的方位。


在局部 Gizmo 切换中未旋转的立方体



在局部 Gizmo 切换中旋转的立方体



在全局 Gizmo 切换中未旋转的立方体



在全局 Gizmo 切换中旋转的立方体


有关 Unity 中旋转的更多信息,请参阅Unity 中的旋转和方向


声明

public void Rotate(Vector3 eulers, Space relativeTo = Space.Self);

参数

eulers 要应用的欧拉角旋转。
relativeTo 确定是相对于游戏对象局部旋转游戏对象,还是相对于场景中的世界空间旋转。

描述

应用围绕 z 轴旋转 eulerAngles.z 度,围绕 x 轴旋转 eulerAngles.x 度,以及围绕 y 轴旋转 eulerAngles.y 度(按此顺序)。

Rotate 以Vector3作为欧拉角参数。第二个参数是旋转轴,可以设置为局部轴(Space.Self)或全局轴(Space.World)。旋转量为欧拉角。


声明

public void Rotate(float xAngle, float yAngle, float zAngle, Space relativeTo = Space.Self);

参数

xAngle 围绕 X 轴旋转游戏对象的度数。
yAngle 围绕 Y 轴旋转游戏对象的度数。
zAngle 围绕 Z 轴旋转游戏对象的度数。
relativeTo 确定是相对于游戏对象局部旋转游戏对象,还是相对于场景中的世界空间旋转。

描述

此方法的实现应用围绕 z 轴旋转zAngle度,围绕 x 轴旋转xAngle度,以及围绕 y 轴旋转yAngle度(按此顺序)。

Rotate 可以使用 3 个浮点数分别指定 x、y 和 z 的欧拉角。

示例显示了两个立方体:一个立方体使用Space.Self游戏对象的局部空间和轴),另一个使用Space.World(相对于/场景/的空间和轴)。两者最初都在 X 轴上旋转 90 度,因此默认情况下它们不会与世界轴对齐。使用检查器中公开的 xAngle、yAngle 和 zAngle 值来查看不同的旋转值如何应用于这两个立方体。您可能会注意到立方体视觉旋转的方式取决于当前方向和使用的空间选项。在场景视图中选择立方体时,尝试使用这些值,以了解这些值如何交互。

using UnityEngine;

// Transform.Rotate example // // This script creates two different cubes: one red which is rotated using Space.Self; one green which is rotated using Space.World. // Add it onto any GameObject in a scene and hit play to see it run. The rotation is controlled using xAngle, yAngle and zAngle, modifiable on the inspector.

public class ExampleScript : MonoBehaviour { public float xAngle, yAngle, zAngle;

private GameObject cube1, cube2;

void Awake() { cube1 = GameObject.CreatePrimitive(PrimitiveType.Cube); cube1.transform.position = new Vector3(0.75f, 0.0f, 0.0f); cube1.transform.Rotate(90.0f, 0.0f, 0.0f, Space.Self); cube1.GetComponent<Renderer>().material.color = Color.red; cube1.name = "Self";

cube2 = GameObject.CreatePrimitive(PrimitiveType.Cube); cube2.transform.position = new Vector3(-0.75f, 0.0f, 0.0f); cube2.transform.Rotate(90.0f, 0.0f, 0.0f, Space.World); cube2.GetComponent<Renderer>().material.color = Color.green; cube2.name = "World"; }

void Update() { cube1.transform.Rotate(xAngle, yAngle, zAngle, Space.Self); cube2.transform.Rotate(xAngle, yAngle, zAngle, Space.World); } }

声明

public void Rotate(Vector3 axis, float angle, Space relativeTo = Space.Self);

参数

axis 要应用旋转的轴。
angle 要应用的旋转度数。
relativeTo 确定是相对于游戏对象局部旋转游戏对象,还是相对于场景中的世界空间旋转。

描述

围绕给定轴旋转对象,旋转度数由给定角度定义。

Rotate 具有轴、角度和局部或全局参数。旋转轴可以朝任何方向。


声明

public void Rotate(Vector3 eulers);

参数

eulers 要应用的欧拉角旋转。

描述

应用围绕 z 轴旋转 eulerAngles.z 度,围绕 x 轴旋转 eulerAngles.x 度,以及围绕 y 轴旋转 eulerAngles.y 度(按此顺序)。

旋转相对于游戏对象的局部空间(Space.Self)。


声明

public void Rotate(float xAngle, float yAngle, float zAngle);

参数

xAngle 围绕 X 轴旋转游戏对象的度数。
yAngle 围绕 Y 轴旋转游戏对象的度数。
zAngle 围绕 Z 轴旋转游戏对象的度数。

描述

此方法的实现应用围绕 z 轴旋转zAngle度,围绕 x 轴旋转xAngle度,以及围绕 y 轴旋转yAngle度(按此顺序)。

旋转相对于游戏对象的局部空间(Space.Self)。


声明

public void Rotate(Vector3 axis, float angle);

参数

axis 要应用旋转的轴。
angle 要应用的旋转度数。

描述

围绕给定轴旋转对象,旋转度数由给定角度定义。

Rotate 具有轴、角度和局部或全局参数。旋转轴可以朝任何方向。旋转相对于游戏对象的局部空间(Space.Self)。