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

64 lines
2.0 KiB
C#

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;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
popupManager.HidePopup(popupType);
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
screenManager.ShowScreen(ScreenType.InGameHUDScreen);
}
private void OnClick_HomeButton()
{
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
popupManager.HidePopup(popupType);
gameManager = InterfaceManager.Instance?.GetInterfaceInstance<GameManager>();
gameManager.OnGameStateChanged(GameState.InMenu);
}
private void OnClick_RestartButton()
{
popupManager.HidePopup(popupType);
SetGameModeHandler();
gameModeHandler.OnGameRestarted();
}
private void SetGameModeHandler()
{
gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance<GameModeHandler>() : gameModeHandler;
}
}