Files
Crash-Course/Assets/Scripts/GameTimer.cs

60 lines
1.3 KiB
C#
Raw Normal View History

2025-03-25 11:34:24 -04:00
using TMPro;
2025-03-20 14:45:29 -04:00
using UnityEngine;
using UnityEngine.UI;
public class GameTimer : MonoBehaviour
{
public float startTime = 180f;
private float timeRemaining;
private bool timerRunning = false;
public Text timerText;
2025-03-25 11:34:24 -04:00
[SerializeField] private TextMeshProUGUI timer;
2025-03-20 14:45:29 -04:00
private void Start()
{
timeRemaining = startTime;
2025-03-25 11:34:24 -04:00
timer.text = "0:00.00";
2025-03-20 14:45:29 -04:00
UpdateTimerDisplay();
}
private void Update()
{
if (timerRunning)
{
timeRemaining -= Time.deltaTime;
if (timeRemaining <= 0)
{
timeRemaining = 0;
timerRunning = false;
OnTimerEnd();
}
UpdateTimerDisplay();
}
}
public void StartTimer()
{
if (!timerRunning)
{
timeRemaining = startTime;
timerRunning = true;
}
}
private void UpdateTimerDisplay()
{
int minutes = Mathf.FloorToInt(timeRemaining / 60);
int seconds = Mathf.FloorToInt(timeRemaining % 60);
timerText.text = string.Format("{0:D2}:{1:D2}", minutes, seconds);
}
private void OnTimerEnd()
{
Debug.Log("Timer ended! KeepAway mode has finished.");
GameManager.Instance.GameOver();
}
}