Время (сек) в Unity

177
24 октября 2018, 22:20

Как убавлять значение переменной, каждую секунду? Я попробовал создать Корутину, и вызвать ее в Update. Так неправильно вроде, т.к всё время вызывается данная Корутина. Например:

int speed = 100;
if(speed > 0) speed-=5;

Вот эти 5 надо минусовать каждую секунду

Answer 1

Корутину стартовать в апдейт - плохо, т.к. вы каждый кадр будете новую корутину создавать. Можно запустить в Start.

Или в Update:

private const float CheckPeriod = 1f;
private float m_LastCheck = CheckPeriod;
private int m_Speed = 100;
private void Update() {
    m_LastCheck -= Time.deltaTime;
    if (m_LastCheck < 0) {
        m_Speed -= 5;
        m_LastCheck = CheckPeriod;
    }
}
Answer 2
  1. есть функция FixedUpdate(),которая выполняется не каждый кадр,а 1 раз в секунду например,интервал выполнения функции можно проставить в настройках проекта

https://docs.unity3d.com/Manual/class-TimeManager.html

https://docs.unity3d.com/ru/current/Manual/class-TimeManager.html

  1. таймер

     float timeLeft = 30.0f;
     void Update()
     {
         timeLeft -= Time.deltaTime;
         if(timeLeft < 0)
         {
             GameOver();
         }
     }
    
Answer 3

Один из вариантов вызова определенного метода каждые n секунд:

InvokeRepeating("LaunchProjectile", 2.0f, 0.3f);

https://docs.unity3d.com/ScriptReference/MonoBehaviour.InvokeRepeating.html https://docs.unity3d.com/ru/530/ScriptReference/MonoBehaviour.InvokeRepeating.html

READ ALSO
WPF невозможно обновить элемент окна

WPF невозможно обновить элемент окна

Использовал слайдер на DispatcherTimer внутри кода окнаНо после переноса в отдельный Singleton класс потоков управляющих кэшированием картинок и смены...

181
Binding in triggers

Binding in triggers

Я описую шаблон для кнопки, хочу чтобы цвет кнопки при наведении и в нормальном состоянии задавался пользователемНо при установке тригерров...

179
Пагинация на сайте

Пагинация на сайте

задание сделать библиотеку(реальная с книгами и газетами) с использованием трехслойной архитектурой, где UI - asp net mvcПервым заданием делал...

173
MySQL SELECT JOIN 3 таблицы, LIMIT 1

MySQL SELECT JOIN 3 таблицы, LIMIT 1

Всем добраВозникли трудности, работая с 3-мя таблицами

148