47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.UI;
|
|
|
|
public class EnumSelect : MonoBehaviour
|
|
{
|
|
public EventTrigger prevBtn;
|
|
public EventTrigger nextBtn;
|
|
public Text label;
|
|
public string[] choices;
|
|
public int curIndex;
|
|
public string value => choices[curIndex];
|
|
|
|
public UnityEvent OnValueChanged;
|
|
void Start()
|
|
{
|
|
update();
|
|
|
|
EventTrigger.Entry entry = new EventTrigger.Entry();
|
|
entry.eventID = EventTriggerType.PointerDown;
|
|
entry.callback.AddListener(OnSelectNext);
|
|
nextBtn.triggers.Add(entry);
|
|
|
|
EventTrigger.Entry entry2 = new EventTrigger.Entry();
|
|
entry2.eventID = EventTriggerType.PointerDown;
|
|
entry2.callback.AddListener(OnSelectPrev);
|
|
prevBtn.triggers.Add(entry2);
|
|
}
|
|
|
|
void OnSelectNext(BaseEventData e){
|
|
curIndex = (curIndex < choices.Length-1) ? curIndex+1 : 0;
|
|
update();
|
|
}
|
|
|
|
void OnSelectPrev(BaseEventData e){
|
|
curIndex = (curIndex > 0) ? curIndex-1 : choices.Length;
|
|
update();
|
|
}
|
|
|
|
void update(){
|
|
label.text = choices[curIndex];
|
|
}
|
|
}
|