Ludo-3D/Assets/Scripts/UI/Pages/PopUp/PauseMenuPopup.cs

75 lines
2.3 KiB
C#
Raw Normal View History

2026-01-28 15:51:45 +05:30
using UnityEngine;
using UnityEngine.UI;
public class PauseMenuPopup : PopupBase
{
[Header("Buttons")]
[SerializeField] private Button homeBtn;
[SerializeField] private Button playBtn;
2026-02-04 16:08:34 +05:30
[SerializeField] private Button restartBtn;
2026-01-28 15:51:45 +05:30
private UIManager uiManager;
2026-02-04 16:08:34 +05:30
private SoundManager soundManager;
private GameModeHandler gameModeHandler;
2026-01-28 15:51:45 +05:30
private void OnEnable()
{
2026-02-02 17:37:11 +05:30
playBtn.onClick.AddListener(OnClick_PlayButton);
homeBtn.onClick.AddListener(OnClick_HomeButton);
2026-02-04 16:08:34 +05:30
restartBtn.onClick.AddListener(OnClick_RestartButton);
2026-01-28 15:51:45 +05:30
}
private void OnDisable()
{
2026-02-02 17:37:11 +05:30
playBtn.onClick.RemoveListener(OnClick_PlayButton);
homeBtn.onClick.RemoveListener(OnClick_HomeButton);
2026-02-04 16:08:34 +05:30
restartBtn.onClick.RemoveListener(OnClick_RestartButton);
2026-01-28 15:51:45 +05:30
}
2026-02-02 17:37:11 +05:30
private void OnClick_PlayButton()
2026-01-28 15:51:45 +05:30
{
SetUIManager();
uiManager.GameManager.SetGameState(GameState.InGame);
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
2026-02-02 17:37:11 +05:30
popupManager.HidePopup(popupType);
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
screenManager.ShowScreen(ScreenType.InGameHUDScreen);
SetGameModeHandler();
gameModeHandler.GameplayManager.OnGameResumed?.Invoke();
2026-01-28 15:51:45 +05:30
}
2026-02-02 17:37:11 +05:30
private void OnClick_HomeButton()
2026-01-28 15:51:45 +05:30
{
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
2026-02-02 17:37:11 +05:30
popupManager.HidePopup(popupType);
SetUIManager();
uiManager.GameManager.OnGameStateChanged(GameState.InMenu);
}
private void SetUIManager()
{
uiManager = uiManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<UIManager>() : uiManager;
2026-01-28 15:51:45 +05:30
}
2026-02-04 16:08:34 +05:30
private void OnClick_RestartButton()
2026-01-28 15:51:45 +05:30
{
2026-02-04 16:08:34 +05:30
popupManager.HidePopup(popupType);
SetGameModeHandler();
gameModeHandler.OnGameRestarted();
2026-01-28 15:51:45 +05:30
}
2026-02-04 16:08:34 +05:30
private void SetGameModeHandler()
{
gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance<GameModeHandler>() : gameModeHandler;
}
2026-01-28 15:51:45 +05:30
}