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, метод продолжит линейный расчёт за границами двух векторов.