Никак не могу добиться правильной интерполяции между двумя точками, алгоритм у меня следующий
Есть 2 точки и есть время за которое объект должен их пройти. Время в данном примере = 0.1 сек
void Update()
{
if(flagJourney == false)
{
endPosition = P1;
startMarker = transform;
startTime = Time.time;
flagJourney = true;
}
else
{
float prec = (Time.time - startTime) / (0.1f);
if(prec >= 1)
{
flagJourney = false;
if(prec > 1)
prec = 1;
}
transform.position = Vector3.Lerp(startMarker.position, endPosition, prec);
Debug.Log(Vector3.Distance(transform.position, endPosition)); // вывод дистанции, которую проходит объект за 1 проход
}
}
Как видно из скриншота, объект за примерно 100 миллисекунд проделал крайне неравномерный путь, данные точки могут примерно напомнить экспоненциальную зависимость. Мне же надо чтобы объект на протяжении 100 мс двигался со средней скоростью, ибо данное решение приводит к рывкам, если его перенести в проект, где точки нужно брать из массива, тогда ни о каком гладком перемещении речи идти не может.