Time.DeltaTime внезапно перестает работать в Unity - PullRequest
0 голосов
/ 01 августа 2020

Итак, я создавал 2D-шутер в единстве, и я запускаю свою игру на глобальном таймере, используя код timer + = Time.deltaTime, это обычно просто дает мне таймер, который работает как секундомер, но внезапно значение моей переменной таймера просто колеблется в районе 0,0003-0,0001 при запуске скрипта, когда он должен идти 1 2 3 4 5 et c каждую секунду. Он делал это раньше, и без каких-либо изменений, насколько мне известно, он просто исправился через 30i sh минут, но теперь это произошло снова. Кто-нибудь знает, почему это?

1 Ответ

0 голосов
/ 01 августа 2020
float time = 0f;
float timer = 5f;

void Update()
{
    time += Time.deltaTime;
    if(time >= timer)
    {
        // Do something
    }
}

Код добавляет 1f к time каждую секунду. Использование Time.deltaTime делает так, что оно будет одинаковым при любой частоте кадров (например, если частота кадров составляет 30 кадров в секунду, она не будет добавлять секунду 30 раз за одну секунду), и если time (количество секунд) превосходит таймер, мы запускаем то, что находится между оператором if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...