Files
BITFALL/Assets/BITKit/Unity/Scripts/Selection/SelectableEvent.cs
CortexCore 45913c6b3e 1
2023-08-23 01:59:40 +08:00

59 lines
2.1 KiB
C#

using UnityEngine;
using UnityEngine.Events;
namespace BITKit
{
public class SelectableEvent : MonoBehaviour, ISelectableComponent
{
[Header(nameof(SelectionState.None))]
[SerializeField] UnityEvent OnNone;
[Header(nameof(SelectionState.Hover))]
[SerializeField] UnityEvent OnHover;
[Header(nameof(SelectionState.Active))]
[SerializeField] UnityEvent OnActive;
[Header(nameof(SelectionState.Inactive))]
[SerializeField] UnityEvent OnInactive;
[Header(nameof(SelectionState.Focus))]
[SerializeField] UnityEvent OnFocus;
[Header(nameof(SelectionState.Selected))]
[SerializeField] UnityEvent OnSelected;
[Header(nameof(SelectionState.Enabled))]
[SerializeField] UnityEvent OnEnabled;
[Header(nameof(SelectionState.Checked))]
[SerializeField] UnityEvent OnChecked;
[Header(nameof(SelectionState.Root))]
[SerializeField] UnityEvent OnRoot;
public void SetSelectionState(SelectionState state)
{
switch (state)
{
case SelectionState.None:
OnNone.Invoke();
break;
case SelectionState.Hover:
OnHover.Invoke();
break;
case SelectionState.Active:
OnActive.Invoke();
break;
case SelectionState.Inactive:
OnInactive.Invoke();
break;
case SelectionState.Focus:
OnFocus.Invoke();
break;
case SelectionState.Selected:
OnSelected.Invoke();
break;
case SelectionState.Enabled:
OnEnabled.Invoke();
break;
case SelectionState.Checked:
OnChecked.Invoke();
break;
case SelectionState.Root:
OnRoot.Invoke();
break;
}
}
}
}