EnumSelect.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.Events;
  5. using UnityEngine.EventSystems;
  6. using UnityEngine.UI;
  7. public class EnumSelect : MonoBehaviour
  8. {
  9. public EventTrigger prevBtn;
  10. public EventTrigger nextBtn;
  11. public Text label;
  12. public string[] choices;
  13. public int curIndex;
  14. public string value => choices[curIndex];
  15. public UnityEvent OnValueChanged;
  16. void Start()
  17. {
  18. update();
  19. EventTrigger.Entry entry = new EventTrigger.Entry();
  20. entry.eventID = EventTriggerType.PointerDown;
  21. entry.callback.AddListener(OnSelectNext);
  22. nextBtn.triggers.Add(entry);
  23. EventTrigger.Entry entry2 = new EventTrigger.Entry();
  24. entry2.eventID = EventTriggerType.PointerDown;
  25. entry2.callback.AddListener(OnSelectPrev);
  26. prevBtn.triggers.Add(entry2);
  27. }
  28. void OnSelectNext(BaseEventData e){
  29. curIndex = (curIndex < choices.Length-1) ? curIndex+1 : 0;
  30. update();
  31. }
  32. void OnSelectPrev(BaseEventData e){
  33. curIndex = (curIndex > 0) ? curIndex-1 : choices.Length;
  34. update();
  35. }
  36. void update(){
  37. label.text = choices[curIndex];
  38. }
  39. }