Unity 6.3
0 онлайн 57 гостей 3 в системе
Вход
Программирование в Unity Шаг 30 из 210

Время в игре и реальное время

Свойства Time.timeScale определяют скорость, с которой время проходит в вашем игровом мире относительно реального времени. Значение Time.timeScale 1.0 означает, что ваше время в игре совпадает с реальным временем. Значение 2.0 делает время в вашей игре проходить в два раза быстрее, чем в реальном мире, что ускоряет действия в вашей игре. Значение 0.5 замедляет игру наполовину. Значение 0 делает ваше время в игре полностью остановиться.

Time.timeScale фактически не замедляет выполнение, но вместо этого изменяет шаг времени, сообщаемый функциям Update и FixedUpdate с Time.deltaTime и Time.fixedDeltaTime.

Ваша функция Update может вызываться так же часто, когда вы уменьшаете шкалу времени, но значение Time.deltaTime в каждом кадре будет меньше. Другие функции скрипта не зависят от шкалы времени, так что вы можете, например, показать GUI с нормальным взаимодействием, когда игра приостановлена.

Для специальных временных эффектов, таких как замедление, иногда полезно замедлять прохождение игрового времени, чтобы анимации и временны́е вычисления в вашем коде происходили медленнее. Кроме того, иногда вы можете захотеть заморозить игровое время полностью, как когда игра приостановлена.

Окно Время имеет свойство, позволяющее установить шкалу времени глобально, но обычно более полезно устанавливать значение из скрипта, используя свойства Time-timeScale:

//C# script example
using UnityEngine;
using System.Collections;

public class ExampleScript : MonoBehaviour {
    void Pause() {
        Time.timeScale = 0;
    }
    
    void Resume() {
        Time.timeScale = 1;
    }
}

Дополнительные ресурсы