Использование Time.deltaTime * scalar
в Lerp прекрасно, но это не «ожидаемый» способ его использования.
LERP означает «Linear intERPolation».С помощью этого математического инструмента вы можете интерполировать значение между двумя другими, используя линейную функцию (y = ax + b) и коэффициент t между 0 и 1.
Предположим, что выпытаясь получить позицию (C) между двумя другими (A и B) (как ваша проблема), у вас есть следующий рисунок:

1 °) Еслиисходная и конечная позиции не меняются, если параметр t изменяется от 0 до 1, кривая движения будет совершенно прямой: скорость будет одинаковой во времени.
transform.position = Vector2.Lerp(InitialPosition, DestinationPosition, t ); // t from 0 to 1
2 °) Однако, если t (почти) не изменяется во времени (с Time.deltaTime
), но при изменении положения A, движение будет замедляться со временем, потому что вы каждый раз берете фиксированный процент от оставшегося расстояния.Так как расстояние со временем уменьшается, вы также путешествуете на меньшее расстояние
transform.position = Vector2.Lerp(transform.position, DestinationPosition, 0.017 ); // 0.017, approx of Time.deltaTime at 60FPS
