Unity up and down timer

Jak wykonać odliczanie czasu w górę i dół w unity? To stosunkowo proste 🙂

Na początek tworzymy pusty obiekt a w nim obiekt tekstu. Do pustego obiektu przypiszmy teraz nowy skrypt c# o nazwie GameTimer.

Kod wygląda następująco:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class GameTimer : MonoBehaviour
{
    public bool upTimer = true;
    public Text gameTimerText;
    [SerializeField] private float gameTimer;

    void Update()
    {
        if (upTimer)
        {
            gameTimer += Time.deltaTime;
        }
        else
        {
            gameTimer -= Time.deltaTime;
        }

        int seconds = (int)(gameTimer % 60);
        int minutes = (int)(gameTimer / 60) % 60;
        int hours = (int)(gameTimer / 3600) % 24;

        if (seconds < 0) {seconds = 0;}
        if (minutes < 0) { seconds = 0; }
        if (hours < 0) { seconds = 0; }

        string timerString = string.Format("{0:0}:{1:00}:{2:00}", hours, minutes, seconds);

        gameTimerText.text = timerString;
    }
}

Teraz w unity do skryptu przeciągnij obiekt tekstu. I teraz tak, jeśli nie zaznaczymy pola Up Timer a w polu Game Timer damy na przykład wartość 60 to skrypt odliczy nam 60 sekund w dół. Natomiast jeśli zaznaczymy checkbox Up Timer a w Game Timer damy 0 to wtedy czas liczony będzie od początku.

To tyle 🙂 Powodzonka!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *