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 22:21:21 -04:00
|
|
|
timer.text = "3: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);
|
2025-03-25 22:21:21 -04:00
|
|
|
timer.text = string.Format("{0}:{1:D2}", minutes, seconds);
|
2025-03-20 14:45:29 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnTimerEnd()
|
|
|
|
|
{
|
|
|
|
|
GameManager.Instance.GameOver();
|
|
|
|
|
}
|
|
|
|
|
}
|