using UnityEngine; using UnityEngine.UI; public class PauseMenuPopup : PopupBase { [Header("Buttons")] [SerializeField] private Button homeBtn; [SerializeField] private Button playBtn; [SerializeField] private Button restartBtn; private GameManager gameManager; private SoundManager soundManager; private GameModeHandler gameModeHandler; private void OnEnable() { playBtn.onClick.AddListener(OnClick_PlayButton); homeBtn.onClick.AddListener(OnClick_HomeButton); restartBtn.onClick.AddListener(OnClick_RestartButton); } private void OnDisable() { playBtn.onClick.RemoveListener(OnClick_PlayButton); homeBtn.onClick.RemoveListener(OnClick_HomeButton); restartBtn.onClick.RemoveListener(OnClick_RestartButton); } private void OnClick_PlayButton() { soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : soundManager; soundManager?.PlayGameSoundClip(SoundType.ButtonClick); popupManager.HidePopup(popupType); ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance(); screenManager.ShowScreen(ScreenType.InGameHUDScreen); } private void OnClick_HomeButton() { soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : soundManager; soundManager?.PlayGameSoundClip(SoundType.ButtonClick); popupManager.HidePopup(popupType); gameManager = InterfaceManager.Instance?.GetInterfaceInstance(); gameManager.OnGameStateChanged(GameState.InMenu); } private void OnClick_RestartButton() { popupManager.HidePopup(popupType); SetGameModeHandler(); gameModeHandler.OnGameRestarted(); } private void SetGameModeHandler() { gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance() : gameModeHandler; } }