Описание
Используйте Transform.Rotate для поворота игровых объектов различными способами. Поворот часто предоставляется как угол Эйлера, а не как кватернион.
Вы можете указать вращение по мировым или локальным осям.
Вращение мировой оси использует систему координат Scene
, поэтому, когда вы начинаете вращать GameObject, его x, y , и оси z выровнены с мировыми осями x, y и z. Итак, если вы вращаете куб в мировом пространстве, его оси совпадают с миром. Когда вы выбираете куб в представлении Scene
в редакторе Unity, отображаются Gizmos
для поворота влево/вправо, вверх/вниз и вперед. /оси обратного вращения. Перемещение этих приспособлений
приводит к вращению куба вокруг осей. Если вы отмените выбор, а затем снова выберите куб, оси перезагрузятся в мировом выравнивании.
Локальное вращение использует систему координат самого GameObject. Таким образом, только что созданный куб использует свои оси x, y и z, установленные на нулевое вращение. Вращение куба обновляет оси вращения. Если вы отмените выбор и снова выберите куб, оси будут отображаться в той же ориентации, что и раньше.




Дополнительную информацию о вращении в Unity см. в разделе Поворот и ориентация в Unity.
Параметры
eulers | Поворот, применяемый в углах Эйлера. |
relativeTo | Определяет, следует ли вращать GameObject локально относительно GameObject или относительно сцены в мировом пространстве. |
Описание
Применяет поворот на eulerAngles.z градусов вокруг оси Z, eulerAngles.x градусов вокруг оси X и eulerAngles.y градусов вокруг оси Y (в указанном порядке).
Поворот принимает аргумент Vector3 в качестве угла Эйлера. Второй аргумент — это оси вращения, которые могут быть установлены как локальные оси (Space.Self) или глобальные оси (Space. Мир). Поворот осуществляется на величину Эйлера.
Объявление
public void Rotate(float xAngle, float yAngle, float zAngle, Space relativeTo = Space.Self);Параметры
relativeTo | Определяет, следует ли вращать GameObject либо локально относительно GameObject, либо относительно Scene в мировом пространстве. |
xAngle | Градусы для поворота GameObject вокруг оси X. |
yAngle | Градусы для поворота GameObject вокруг оси Y. |
zAngle | Градусы для поворота GameObject вокруг оси Z. |
Описание
Реализация этого метода применяет поворот на zAngle
градусов вокруг оси z, xAngle
градусов вокруг оси x, и yAngle
градусов вокруг оси Y (именно в таком порядке).
Поворот может иметь угол Эйлера, указанный в 3 числах с плавающей запятой для x, y и z.
В примере показаны два куба: один куб использует Space.Self (локальное пространство и оси GameObject ), а другой использует Space.World (пространство и оси по отношению к /Scene/). Они оба сначала повернуты на 90 по оси X, поэтому по умолчанию они не выровнены с мировой осью. Используйте значения xAngle, yAngle и zAngle, отображаемые в инспекторе, чтобы увидеть, как разные значения поворота применяются к обоим кубам. Вы могли заметить, что способ визуального вращения кубов зависит от текущей ориентации и используемого параметра «Пробел». Поэкспериментируйте со значениями, выбирая кубы в представлении сцены, чтобы попытаться понять, как взаимодействуют значения.
using UnityEngine;
// Пример Transform.Rotate
//
// Этот скрипт создает два разных куба: один красный, который вращается с помощью Space.Self; один зеленый, который вращается с помощью Space.World.
// Добавьте его на любой GameObject в сцене и нажмите кнопку воспроизведения, чтобы увидеть, как он запускается. Вращение управляется с помощью xAngle, yAngle и zAngle, которые можно изменить в инспекторе.
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);
}
}
Параметры
angle | Применяемые градусы вращения. |
axis | Ось, к которой применяется вращение. |
relativeTo | Определяет, следует ли вращать GameObject локально относительно GameObject или относительно сцены в мировом пространстве. |
Описание
Поворачивает объект вокруг заданной оси на число градусов, определяемое заданным углом.
Поворот имеет ось, угол и локальные или глобальные параметры. Ось вращения может быть в любом направлении.
Параметры
eulers | Поворот, применяемый в углах Эйлера. |
Описание
Применяет поворот на eulerAngles.z градусов вокруг оси Z, eulerAngles.x градусов вокруг оси X и eulerAngles.y градусов вокруг оси Y (в указанном порядке).
Вращение происходит относительно локального пространства GameObject (Space.Self).
Объявление
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).
Параметры
axis | Ось, к которой применяется вращение. |
angle | Применяемые градусы вращения. |
Описание
Поворачивает объект вокруг заданной оси на число градусов, определяемое заданным углом.
Поворот имеет ось, угол и локальные или глобальные параметры. Ось вращения может быть в любом направлении. Вращение происходит относительно локального пространства GameObject (Space.Self).