using AibisDream; using UnityEngine; namespace AibisDream.UI { [RequireComponent(typeof(BaseButton))] [DisallowMultipleComponent] public class TerminalUIAudioBehaviour : MonoBehaviour { private BaseButton _button; private SelectionType _prevState = SelectionType.Normal; private void Awake() { if (TryGetComponent(out _)) { enabled = false; return; } _button = GetComponent(); _button.onStateTransition.AddListener(OnStateTransition); _button.onClick.AddListener(OnClick); } private void OnDestroy() { if (_button == null) { return; } _button.onStateTransition.RemoveListener(OnStateTransition); _button.onClick.RemoveListener(OnClick); } private void OnStateTransition(SelectionType state, bool instant) { if (_button.interactable && state == SelectionType.Highlighted && _prevState == SelectionType.Normal) { TerminalUIAudio.NotifyHover(); } _prevState = state; } private void OnClick() { if (_button != null && _button.interactable) { TerminalUIAudio.NotifyClick(); } } } }