Обновление и FixedUpdate - это обе функции обратного вызова, которые Unity вызывает на вашем Monobehaviours
в определенные моменты времени в течение своей жизни.Более конкретно, Update
называется каждый кадр (при условии, что Monobehaviour
включен), а FixedUpdate
называется каждый физический кадр .
Физические кадры не зависят от графической частоты кадров и задаются изнутри Unity, чтобы происходить через определенный интервал.Значение по умолчанию - 50 раз в секунду (другими словами, FixedUpdate
работает со скоростью 50 кадров в секунду по умолчанию).
FixedUpdate
- это, как правило, функция, которую вы должны зарезервировать для своих основанных на физике потребностей (например, использование RigidBodies
или приведение лучей и т. д.), и, безусловно, , а не , который можно использовать для таких вещей, как получение пользовательского ввода.
Теперь, когда это, надеюсь, прояснится, давайтеaddress Time.deltaTime
и Time.fixedDeltaTime
:
Time.fixedDeltaTime
возвращает количество времени, прошедшее с момента запуска предыдущего кадра FixedUpdate()
.Теперь, поскольку мы знаем сверху, что FixedUpdate()
работает с постоянной частотой кадров (по умолчанию 50), это значение будет более или менее всегда одинаковым между кадрами
Time.deltaTime
аналогичным образом возвращает количество временичто прошло с момента запуска предыдущего кадра Update()
.Теперь, поскольку Update()
не работает с постоянной частотой кадров, но зависит от компьютера пользователя, это значение почти всегда будет немного отличаться в каждом кадре.
Итак, учитывая все это, должно ли это войти в Update()
или FixedUpdate()
?И стоит ли использовать Time.deltaTime
или Time.fixedDeltaTime
?
Если бы я проделал достойную работу по объяснению различий между этими вещами, то я ожидаю, что вы теперь знаете, что это должно войти в Update()
и используйте Time.deltaTime
.
Я не знаю, что именно делает этот метод SmoothDamp.Float()
, но с помощью lerping
между двумя позициями, используя Time.deltaTime
в качестве параметра t
, вы убедитесь, чтонезависимо от того, какая частота кадров у этой машины, она будет плавной и последовательной.