Files
project-reset/Assets/Plugins/LiveWatchLite/TowerDefenceDemo/Scripts/UI/WaveButtonUI.cs
2025-08-31 18:14:07 -04:00

42 lines
1.1 KiB
C#

using System;
using UnityEngine;
using UnityEngine.UI;
namespace Ingvar.LiveWatch.TowerDefenceDemo.UI
{
public class WaveButtonUI : MonoBehaviour
{
[SerializeField] private Button playWaveButton;
private LevelScene _levelScene;
private void Awake()
{
_levelScene = FindObjectOfType<LevelScene>();
}
private void OnEnable()
{
_levelScene.LevelStateManager.StateChanged += RefreshButton;
playWaveButton.onClick.AddListener(OnPlayButtonClicked);
RefreshButton();
}
private void OnDisable()
{
_levelScene.LevelStateManager.StateChanged -= RefreshButton;
playWaveButton.onClick.RemoveListener(OnPlayButtonClicked);
}
private void RefreshButton()
{
playWaveButton.interactable = _levelScene.LevelStateManager.CurrentState == LevelStateType.Waiting;
}
private void OnPlayButtonClicked()
{
_levelScene.WaveManager.StartWave();
}
}
}