@GameIdea

Delta Time или Fixed Delta Time?

Нужно мне засекать время для таблицы рекордов.
Время сохраняется в переменную как score = score + Time.deltaTime;
Вопрос как правильно засекать время?
Нужно юзать Time.DeltaTime или Time.FixedDeltaTime?
Точность является одним из показателей.
  • Вопрос задан
  • 3350 просмотров
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Точнее всего во время старта сохранять DateTime.Now, а в момент остановки таймера брать DateTime ещё раз, вычитать первое из второго и получать TimeSpan, а дальше можно делать что угодно. Это самый гибкий вариант, но DateTime ничего не знает про Time.timeScale, если вы хотите учитывать замедление-ускорение времени, то берите Time.time и точно так же отмеряйте старт и финиш таймера. Плюсовать deltaTime очень ненадёжно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Espleth
Точно - Time.time. Но можно и этими двумя. В вашем случае deltaTime если Update, и fixedDeltaTime если FixedUpdate.
Что такое deltaTime и fixedDeltaTime можно легко найти по первой ссылке в гугле
Ответ написан
MrMureno
@MrMureno Куратор тега Unity
VR for all
тут важно б уточнить что даже в документации упоминается что deltaTime само "мутирует"(начинает считаться как fixedDeltaTime) в fixedDeltaTime, если использовать его в FixedUpdate. так что с этим можно не заморачиваться)

deltaTime - это время между кадрами (на которое вы можете только получить), так что тут точность может проседать вместе и с производительностью)
fixedDeltaTime - из названия фиксированный (точнее пробует уложиться и каждый раз вызвать, но не суть) интервал задаваемый в редакторе, но уменьшать его вручную не стоит - так как на нем завязан просчет физики.

По сути же , вам насколько принципиальна точность?
Если прям до долей секунд - то вам нужно засекать время через что-то системное) в духе таймеров меряющих производительность методов в коде и тд)
Если же вам погрешность в 1/30 секунды..плюс минус..не критична) то просто на Update плюсуйте свой таймер и не страдайте)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы