zombie_mp/Assets/Scripts/Helpers/EnumSelect.cs

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];
}
}