Я пытаюсь перебросить некоторые предметы на определенное заданное расстояние в течение определенного периода времени. Я использую Time.DeltaTime, чтобы добиться независимости от частоты кадров. Однако при принудительной задержке с помощью функции с очень высокой производительностью (снижает частоту кадров до теоретических 10-15 кадров в секунду), мои объекты перемещаются НАМНОГО медленнее, чем должны, даже если они должны двигаться с постоянным временем, независимо от частоты кадров (они занимают примерно вдвое длиннее, 4 с вместо 2).
Что еще более странно, так это то, что расчетный FPS (1.0f / Time.deltaTime) остается постоянным (примерно 66 FPS). Когда я показываю время, которое потребовалось для завершения lerp (добавляя time.deltaTimes), оно показывает 2 секунды (это желаемое время, однако фактическое время, которое потребовалось, как минимум в 2 раза больше).
Может ли кто-нибудь помочь мне разобраться в том, что происходит?
var startTime = 0.0;
while(startTime < 2.0){
yield;
startTime += Time.deltaTime;
transform.localPosition = Vector3.Lerp(Vector3(0.0,0.0,0.0), Vector3(0.0,10.0,0.0), startTime/2.0);
}