Unity C#

Что такое Vector3.Lerp в Unity C#

Метод Vector3.Lerp интерполирует между двумя точками в 3D-пространстве: возвращает промежуточное значение между двумя векторами в зависимости от параметра времени. Он удобен для плавного перемещения, поворота или смены позиции объектов.

Особенности

  • Линейная интерполяция: значение лежит на прямой между двумя векторами.
  • Контроль плавности: параметр t задаёт степень перехода и должен быть в диапазоне от 0 до 1.
  • Удобство: для анимаций, плавного движения камеры и постепенных изменений.

Пример кода

Объект плавно движется от начальной точки к конечной и зацикливается:

using UnityEngine;

public class LerpExample : MonoBehaviour
{
    public Transform startPoint; // Начальная точка
    public Transform endPoint;   // Конечная точка
    public float lerpSpeed = 0.5f; // Скорость интерполяции

    private float t = 0; // Параметр времени

    void Update()
    {
        // Плавное перемещение объекта между двумя точками
        t += Time.deltaTime * lerpSpeed;
        transform.position = Vector3.Lerp(startPoint.position, endPoint.position, t);

        // Остановка, когда достигаем конечной точки
        if (t >= 1.0f)
        {
            t = 0; // Перезапуск для демонстрации
        }
    }
}

Если t выйдет за пределы 0–1, метод продолжит линейный расчёт за границами двух векторов.