using UnityEngine; using UnityEngine.Events; using TMPro; public class CountdownController : MonoBehaviour { [SerializeField] private int _count = 3; [SerializeField] private TMP_Text _countdownLabel; [SerializeField] private string _countdownFinishText = "Go!"; public UnityEvent OnCountdownFinish; void Start() { _countdownLabel.SetText(_count.ToString()); InvokeRepeating(nameof(Countdown), 1f, 1f); } private void Countdown() { _countdownLabel.SetText((--_count == 0) ? _countdownFinishText : _count.ToString()); if (_count == 0) { CancelInvoke(); Invoke(nameof(DisableCountdown), 1f); } } private void DisableCountdown() { _countdownLabel.gameObject.SetActive(false); OnCountdownFinish?.Invoke(); Destroy(this); } }