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
|
|
|
|
2026-02-04 21:47:34 +05:30
|
|
|
private UIManager uiManager;
|
2026-02-04 16:08:34 +05:30
|
|
|
private SoundManager soundManager;
|
|
|
|
|
private GameModeHandler gameModeHandler;
|
2026-01-28 16:53:28 +05:30
|
|
|
|
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
|
|
|
{
|
2026-02-04 21:47:34 +05:30
|
|
|
SetUIManager();
|
|
|
|
|
uiManager.GameManager.SetGameState(GameState.InGame);
|
|
|
|
|
|
2026-01-28 16:53:28 +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);
|
|
|
|
|
|
|
|
|
|
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
|
|
|
|
|
screenManager.ShowScreen(ScreenType.InGameHUDScreen);
|
2026-02-04 21:47:34 +05:30
|
|
|
|
|
|
|
|
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
|
|
|
{
|
2026-01-28 16:53:28 +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);
|
|
|
|
|
|
2026-02-04 21:47:34 +05:30
|
|
|
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
|
|
|
}
|