Что такое Transform.Rotate в Unity C#?
Метод Transform.Rotate в Unity используется для поворота объекта вокруг заданной оси на определенный угол. Это один из самых удобных способов реализовать вращение объектов в трёхмерном пространстве, будь то вращение в ответ на пользовательский ввод или автоматическое вращение в течение времени.
Transform.Rotate
- Поворот относительно локальной или мировой системы координат: Метод поддерживает поворот как в локальной системе координат объекта (по умолчанию), так и в мировой системе, если это указано.
- Гибкость: Позволяет вращать объект по любой из трёх осей (X, Y, Z) или по комбинации осей.
- Время выполнения: Часто используется в методах
UpdateилиFixedUpdateдля создания постоянного вращения.
Синтаксис:
void Rotate(Vector3 eulerAngles, Space relativeTo = Space.Self)
Где:
eulerAngles— Вектор с углами поворота по осям X, Y и Z.relativeTo— Указывает систему координат (Space.SelfилиSpace.World).
using UnityEngine;
public class Rotator : MonoBehaviour
{
public float rotationSpeed = 50f;
void Update()
{
// Вращаем объект вокруг оси Y в мировой системе координат
transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime, Space.World);
}
}
using UnityEngine;
public class MultiAxisRotator : MonoBehaviour
{
public float rotationSpeedX = 30f;
public float rotationSpeedY = 50f;
public float rotationSpeedZ = 20f;
void Update()
{
// Вращение объекта по всем осям в локальной системе координат
transform.Rotate(new Vector3(rotationSpeedX, rotationSpeedY, rotationSpeedZ) * Time.deltaTime, Space.Self);
}
}
Такой подход позволяет задать сложное вращение, которое будет происходить в зависимости от указанных скоростей по каждой оси.
Комментарии