using System; using UnityEngine; using UnityEngine.UI; namespace VMdemo.UI { public class SimulationControlView : MonoBehaviour { [SerializeField] private Button stepButton; [SerializeField] private Button playButton; [SerializeField] private Button pauseButton; [SerializeField] private Button resetButton; public event Action StepClicked; public event Action PlayClicked; public event Action PauseClicked; public event Action ResetClicked; private void Awake() { Bind(); } public void SetPlaying(bool isPlaying) { if (stepButton != null) { stepButton.interactable = !isPlaying; } if (playButton != null) { playButton.interactable = !isPlaying; } if (pauseButton != null) { pauseButton.interactable = isPlaying; } if (resetButton != null) { resetButton.interactable = true; } } private void Bind() { if (stepButton != null) { stepButton.onClick.RemoveAllListeners(); stepButton.onClick.AddListener(() => StepClicked?.Invoke()); } if (playButton != null) { playButton.onClick.RemoveAllListeners(); playButton.onClick.AddListener(() => PlayClicked?.Invoke()); } if (pauseButton != null) { pauseButton.onClick.RemoveAllListeners(); pauseButton.onClick.AddListener(() => PauseClicked?.Invoke()); } if (resetButton != null) { resetButton.onClick.RemoveAllListeners(); resetButton.onClick.AddListener(() => ResetClicked?.Invoke()); } } } }