75 lines
1.9 KiB
C#
75 lines
1.9 KiB
C#
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());
|
|
}
|
|
}
|
|
}
|
|
}
|