Quadrobb

Объявление

Внимание дорогие пользователи! Идет набор в группу администрации и модераторов! По всем вопросам писать Админам!

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Quadrobb » Unity, Unity3D » Простой таймер Unity


Простой таймер Unity

Сообщений 1 страница 2 из 2

1

Привет всем!Объясните пожалуйста как сделать таймер в скриптовом смысле.
Таймер нужен на секунды,ну там например:каждые 30 секунд к переменной money прибавляется 100 и т.д.

Админам добра!!!

Теги: Простой таймер Unity

0

2

- Технический отдел помощи пользователям!!!

ОТВЕТ: Смотря на сколько долго такой процесс будет запущен.
Можно через Coroutineпсевдокод:

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {

    public int Money = 0;
    public int MaxMoney = 10;
    IEnumerator Start ()
    {
        start:
        while (Money >= MaxMoney) yield return null;
        while (Money < MaxMoney)
        {
            yield return new WaitForSeconds(2f);
            if(Money < MaxMoney)
                    Money += 1;
        }
        goto start;
    }
}

Минусом такого решения будет то что зависит от Time.timeScale

Имхо лучше вариант с сохранением DateTime последнего добавления денег и в апдейте смотреть разницу между ним и текущим временем (также можно сохранять в PlayerPrefs чтоб при старте посмотреть и начислить за всё время что игрока не было в игре)

using UnityEngine;
using System;
using System.Collections;

public class Test : MonoBehaviour
{

    public int Money = 0;
    public int MaxMoney = 10;

    DateTime _lastAddTime = DateTime.MinValue;
    bool _counting = false;

    void Update()
    {
        if (Money >= MaxMoney)
        {
            _counting = false;
            return;
        }

        if (!_counting)
        {
            _lastAddTime = DateTime.Now;
            _counting = true;
            return;
        }

        if ((DateTime.Now - _lastAddTime).TotalSeconds > 2.0)
        {
            Money += 1;
            _lastAddTime = DateTime.Now;
        }
    }
}

0


Вы здесь » Quadrobb » Unity, Unity3D » Простой таймер Unity


Рейтинг форумов | Создать форум бесплатно