TransformHandle.Rotate
Описание
Используйте TransformHandle.Rotate для поворота GameObjects различными способами. Вращение часто указывается как Эйлеров угол, а не как кватернион.
Вы можете указать вращение в мировых осях или локальных осях.
Вращение мировой оси использует координатную систему Scene, так что когда вы начинаете вращение GameObject, его оси x, y и z выравниваются с мировым осями x, y и z. Таким образом, если вы вращаете куб в мировом пространстве, его оси выравниваются с мировым пространством. Когда вы выбираете куб в Scene представлении Unity Editor, вращение Gizmos появляется для осей вращения влево/вправо, вверх/вниз и вперед/назад. Перемещение этих Gizmos вращает куб вокруг осей. Если вы отменяете выбор и затем повторно выбираете куб, оси перезапускаются в мировом выравнивании.
Локальное вращение использует координатную систему самого GameObject. Таким образом, вновь созданный куб использует свои оси x, y и z, установленные на нулевое вращение. Вращение куба обновляет оси вращения. Если вы отменяете выбор и повторно выбираете куб, оси отображаются в той же ориентации, что и прежде.
Куб, не вращающийся в локальном режиме Gizmo Toggle
Куб, вращающийся в локальном режиме Gizmo Toggle
Куб, не вращающийся в глобальном режиме Gizmo Toggle
Куб, вращающийся в глобальном режиме Gizmo Toggle
Дополнительную информацию о вращении в Unity см. в Вращение и ориентация в Unity.
Declaration
public void Rotate(Vector3 eulers, Space relativeTo = Space.Self);Параметры
| Параметр | Описание |
|---|---|
| Эйлеры | Вращение, которое будет применяться в эйлеровых углах. |
| relativeTo | Определяет, следует ли вращать GameObject либо локально к GameObject, либо относительно Scene в мировом пространстве. |
Описание
Применяет вращение на eulerAngles.z градусов вокруг оси z, eulerAngles.x градусов вокруг оси x и eulerAngles.y градусов вокруг оси y (в этом порядке).
Rotate принимает аргумент Vector3 в качестве Эйлерова угла. Второй аргумент — это оси вращения, которые могут быть установлены на локальную ось (Space.Self) или глобальную ось (Space.World). Вращение производится по Эйлеровому значению.
Declaration
public void Rotate(float xAngle, float yAngle, float zAngle, Space relativeTo = Space.Self);Параметры
| Параметр | Описание |
|---|---|
| xAngle | Уровни для поворота GameObject вокруг оси X. |
| yAngle | Уровни для поворота GameObject вокруг оси Y. |
| zAngle | Уровни для поворота GameObject вокруг оси Z. |
| relativeTo | Определяет, следует ли вращать GameObject локально по отношению к GameObject или относительно Scene в мировом пространстве. |
Описание
При реализации этого метода применяется вращение на zAngle градусов вокруг оси z, xAngle градусов вокруг оси x и yAngle градусов вокруг оси y (в этом порядке).
Поворот может иметь эйлеровский угол, указанный в 3 плавучих значениях для x, y и z.
В примере показаны два куба: один куб использует Space.Self (локальное пространство и оси GameObject) и другой использует Space.World (пространство и оси относительно /Scene/). Оба куба сначала поворачиваются на 90 градусов по оси X, так что по умолчанию они не выравниваются с мировой осью. Используйте значения xAngle, yAngle и zAngle, отображаемые в инспекторе, чтобы увидеть, как различные значения вращения применяются к обоим кубам. Вы можете заметить, что визуальное вращение куба зависит от текущей ориентации и используемых параметров Space. Поиграйте со значениями, выбирая кубы в виде сцены, чтобы понять, как эти значения взаимодействуют.
using UnityEngine;
// TransformHandle.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() { TransformHandle cube1TransformHandle = cube1.transformHandle; TransformHandle cube2TransformHandle = cube2.transformHandle;
cube1 = GameObject.CreatePrimitive(PrimitiveType.Cube); cube1TransformHandle.position = new Vector3(0.75f, 0.0f, 0.0f); cube1TransformHandle.Rotate(90.0f, 0.0f, 0.0f, Space.Self); cube1.GetComponent<Renderer>().material.color = Color.red; cube1.name = "Self";
cube2 = GameObject.CreatePrimitive(PrimitiveType.Cube); cube2TransformHandle.position = new Vector3(-0.75f, 0.0f, 0.0f); cube2TransformHandle.Rotate(90.0f, 0.0f, 0.0f, Space.World); cube2.GetComponent<Renderer>().material.color = Color.green; cube2.name = "World"; }
void Update() { cube1.transformHandle.Rotate(xAngle, yAngle, zAngle, Space.Self); cube2.transformHandle.Rotate(xAngle, yAngle, zAngle, Space.World); } }
Declaration
public void Rotate(Vector3 axis, float angle, Space relativeTo = Space.Self);Параметры
| Параметр | Описание |
|---|---|
| оси | Ось, к которой будет применено вращение. |
| угол | Степень вращения, которая должна применяться. |
| relativeTo | Определяет, следует ли вращать GameObject либо локально к GameObject, либо относительно Scene в мировом пространстве. |
Описание
Поворачивает объект вокруг заданной оси на число градусов, определяемое заданным углом.
Поворот имеет ось, угол и локальные или глобальные параметры. Ось вращения может быть в любом направлении.
Declaration
public void Rotate(Vector3 eulers);Параметры
| Параметр | Описание |
|---|---|
| Эйлеры | Вращение, которое будет применяться в эйлеровых углах. |
Описание
Применяет вращение на eulerAngles.z градусов вокруг оси z, eulerAngles.x градусов вокруг оси x и eulerAngles.y градусов вокруг оси y (в этом порядке).
Вращение относительно локального пространства GameObject (Space.Self).
Declaration
public void Rotate(float xAngle, float yAngle, float zAngle);Параметры
| Параметр | Описание |
|---|---|
| xAngle | Уровни для поворота GameObject вокруг оси X. |
| yAngle | Уровни для поворота GameObject вокруг оси Y. |
| zAngle | Уровни для поворота GameObject вокруг оси Z. |
Описание
При реализации этого метода применяется вращение на zAngle градусов вокруг оси z, xAngle градусов вокруг оси x и yAngle градусов вокруг оси y (в этом порядке).
Вращение относительно локального пространства GameObject (Space.Self).
Declaration
public void Rotate(Vector3 axis, float angle);Параметры
| Параметр | Описание |
|---|---|
| оси | Ось, к которой будет применено вращение. |
| угол | Степень вращения, которая должна применяться. |
Описание
Поворачивает объект вокруг заданной оси на число градусов, определяемое заданным углом.
Поворот имеет ось, угол и локальные или глобальные параметры. Ось вращения может быть в любом направлении. Поворот относится к локальному пространству GameObject (Space.Self).