using System; using TMPro; using UnityEngine; using UnityEngine.UI; public class GameOverUI : MonoBehaviour { public static GameOverUI Instance { get; private set; } [SerializeField] private TextMeshProUGUI recipeDeliveredText; [SerializeField] private TextMeshProUGUI pointsText; [SerializeField] private Button restartButton; [SerializeField] private Button mainMenuButton; private void Awake() { Instance = this; restartButton.onClick.AddListener(() => Loader.Load(Loader.Scene.GameScene)); mainMenuButton.onClick.AddListener(() => Loader.Load(Loader.Scene.MainMenuScene)); } private void Start() { KitchenGameManager.Instance.OnStateChanged += KitchenGameManager_OnStateChanged; Hide(); restartButton.Select(); } private void KitchenGameManager_OnStateChanged(object sender, System.EventArgs e) { if (KitchenGameManager.Instance.IsGameOver()) { recipeDeliveredText.text = DeliveryManager.Instance.SuccessfulRecipes.ToString(); pointsText.text = DeliveryManager.Instance.Points.ToString(); Show(); GamePlayingClockUI.Instance.Hide(); DeliveryManagerUI.Instance.Hide(); PointsUI.Instance.Hide(); } else { Hide(); GamePlayingClockUI.Instance.Show(); DeliveryManagerUI.Instance.Show(); PointsUI.Instance.Show(); } } public void Hide() => gameObject.SetActive(false); public void Show() => gameObject.SetActive(true); }