[Unity Doc](https://docs.unity3d.com/ScriptReference/Time.html)
Класс Time в Unity представляет собой статический класс, который предоставляет доступ к информации о времени в игровом движке. Вот некоторые из наиболее часто используемых свойств и методов этого класса:
<br>
**Time.time:** Возвращает время в секундах с момента запуска игры (не учитывает время, проведенное на паузе).
<br>
**Time.deltaTime:**
Возвращает время в секундах, прошедшее с момента отрисовки предыдущего кадра. Это измерение времени между двумя последовательными кадрами.
Вот как это работает:
Представьте, что у вас есть игра, которая работает с частотой 60 кадров в секунду. Это означает, что каждый кадр отрисовывается примерно каждые 0.0167 секунды (1 секунда / 60). Таким образом, `Time.deltaTime` будет возвращать примерно 0.0167.
Если бы ваша игра работала с частотой 30 кадров в секунду, каждый кадр бы отрисовывался примерно каждые 0.0333 секунды (1 секунда / 30). В этом случае `Time.deltaTime` будет возвращать примерно 0.0333.
`Time.deltaTime` автоматически рассчитывается Unity в каждом кадре. В начале каждого кадра движок Unity фиксирует текущее время, а затем вычитает из него время начала предыдущего кадра, чтобы получить `deltaTime`.
Таким образом, `Time.deltaTime` представляет собой меру времени, прошедшего между кадрами, что позволяет сгладить движение и другие изменения в игре, делая их независимыми от частоты кадров.
<br>
**Time.fixedDeltaTime:** Возвращает фиксированное количество времени между каждым вызовом FixedUpdate(). Используется в физических вычислениях.
<br>
**Time.frameCount:** Возвращает количество отрисованных кадров с момента запуска игры.
<br>
**Time.unscaledTime:** Возвращает время в секундах с момента запуска игры (не учитывает время, проведенное на паузе и не масштабируется).
<br>
**Time.unscaledDeltaTime:** То же самое, что и Time.deltaTime, но не масштабируется.
**Time.realtimeSinceStartup:** Возвращает время в секундах с момента запуска игры (учитывает время, проведенное на паузе).
Эти свойства и методы очень полезны при управлении движением, анимацией, таймерами и другими аспектами, которые зависят от времени в игре.
<br>
### В смысле не масштабируется?
В Unity, "масштабирование времени" относится к возможности изменения скорости прохождения времени в игре. Это делается с помощью свойства Time.timeScale, которое по умолчанию равно 1.
Если вы установите Time.timeScale равным 0.5, то время будет идти в два раза медленнее, и все, что использует Time.deltaTime (как многие анимации и движения), также замедлится. Если Time.timeScale равен 0, то время останавливается, и Time.deltaTime также будет возвращать 0.
Однако, иногда нужно, чтобы некоторые элементы игры (например, пользовательский интерфейс) работали независимо от скорости прохождения времени в игре. Именно для этого существуют Time.unscaledTime и Time.unscaledDeltaTime. Эти значения не учитывают масштаб времени, и продолжают идти со своей нормальной скоростью, даже если Time.timeScale изменен.