Skip to content Skip to sidebar Skip to footer

Creare un timer con possibilità di pausa in Unity

Una delle necessità più comuni durante lo sviluppo di un videogame, è la possibilità di creare un timer di gioco (da mostrare a video oppure semplicemente per statistiche interne). Se da un lato la realizzazione è semplice, dall’altro può esserci la necessità di mettere in pausa il conteggio al fine di riprenderlo dopo la pausa stessa.

Di seguito un semplice script utile alla realizzazione di un timer con possibilità di pausa.


public class Timer : MonoBehaviour
{
    public Text timerText;
    private float totalTime;
    private bool isPaused = false;

    private void Update()
    {
        if (!isPaused)
        {
            totalTime += Time.deltaTime;

            int hours = Mathf.FloorToInt(totalTime / 3600);
            int minutes = Mathf.FloorToInt((totalTime % 3600) / 60);
            int seconds = Mathf.FloorToInt(totalTime % 60);

            timerText.text = hours.ToString("00") + ":" + minutes.ToString("00") + ":" + seconds.ToString("00");
        }
    }

    public void TogglePause()
    {
        isPaused = !isPaused;
    }
}