@PHP-Use
Учусь

Как сделать в юнити начисление баллов каждую секунду?

Помогите пожалуйста реализовать получение бонусов каждую секунду. То есть при покупке улучшения, требуется чтобы каждую секунду score+1. Надеюсь хорошо объяснил.
  • Вопрос задан
  • 431 просмотр
Пригласить эксперта
Ответы на вопрос 4
VariusRain
@VariusRain
музыкант-программист-конструктор
Самый простой и оптимальный вариант: корутины
Сложнее, но элегантнее: завести отдельный поток
Ответ написан
Комментировать
SherAlex
@SherAlex
Game Developer
Есть такая функция как WaitForSeconds, её можете вызывать в асинхронной функции (то есть с функции вида async void fun () ).
Например
async void AddBall()
{
while(needAddBall)
{
Ball++;
await new WaitForSeconds(1);
}
}

Она будет исполняться как бы параллельно с основным потоком игры, то есть не будет ему мешать.
Ответ написан
@Hixac
Без асинхронности, наклепал "зарисовочку"
StartCoroutine(Метод());

void IEnumerator Метод()
{
    yield return new WaitForSeconds(1);
}
Ответ написан
Griboks
@Griboks Куратор тега Unity
Если игра realtime, то в FixedUpdate проверять, если доилка - то просто по формуле.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы