mirror of
https://github.com/ryzij/Cube-Tower-Defense.git
synced 2026-07-14 10:06:58 +00:00
50 lines
1.6 KiB
C#
50 lines
1.6 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class GameMenuButtons : MonoBehaviour
|
|
{
|
|
[SerializeField] private GameManager _gameManager;
|
|
[SerializeField] private SandPathBuildService _sandPathBuildService;
|
|
[SerializeField] private Button _mainMenuButton;
|
|
[SerializeField] private Button _nextLevelButton;
|
|
[SerializeField] private Button _resetPathButton;
|
|
|
|
private void OnEnable()
|
|
{
|
|
_gameManager.OnStateChanged += OnStateChanged;
|
|
_mainMenuButton.onClick.AddListener(ExitToMainMenu);
|
|
|
|
if (_resetPathButton != null)
|
|
_resetPathButton.onClick.AddListener(OnResetButtonClick);
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
_gameManager.OnStateChanged -= OnStateChanged;
|
|
_mainMenuButton.onClick.RemoveListener(ExitToMainMenu);
|
|
|
|
if (_resetPathButton != null)
|
|
_resetPathButton.onClick.RemoveListener(OnResetButtonClick);
|
|
}
|
|
|
|
private void OnStateChanged(GameManager.GameState newState)
|
|
{
|
|
_nextLevelButton.interactable = newState != GameManager.GameState.BuildingPath;
|
|
if (!_nextLevelButton.interactable || _resetPathButton == null)
|
|
return;
|
|
|
|
_resetPathButton.onClick.RemoveAllListeners();
|
|
Destroy(_resetPathButton.gameObject);
|
|
_resetPathButton = null;
|
|
}
|
|
|
|
private void OnResetButtonClick()
|
|
{
|
|
_sandPathBuildService.ResetPath();
|
|
_gameManager.CurrentState = GameManager.GameState.BuildingPath;
|
|
}
|
|
|
|
public void ExitToMainMenu() =>
|
|
UnityEngine.SceneManagement.SceneManager.LoadScene("MainMenu");
|
|
}
|