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);
}