Unity C#
Transform.Translate в Unity C# — движение объекта по сцене
Метод Transform.Translate перемещает объект на заданное расстояние относительно его текущей позиции. Его используют для движения персонажей, камер и других игровых элементов.
Особенности
- Относительное перемещение: сдвигает объект относительно локальной системы координат или глобальной, если указано.
- Удобство: простой и понятный способ двигать объекты в реальном времени.
- Гибкость: задаёшь направление и расстояние, учитывая Time.deltaTime.
Пример кода
Объект двигается по вводу с осей с учётом времени:
using UnityEngine;
public class Player : MonoBehaviour
{
private float speed = 5.0f;
void Update()
{
// Получаем данные ввода
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
// Формируем направление движения
Vector3 movement = new Vector3(horizontal, 0, vertical);
// Перемещаем объект с учетом времени
transform.Translate(movement * speed * Time.deltaTime);
}
}
Вторым параметром можно задать Space.Self или Space.World — локальную или глобальную систему координат:
void Update()
{
Vector3 forwardMovement = new Vector3(0, 0, 1);
transform.Translate(forwardMovement * speed * Time.deltaTime, Space.World);
}