UIVirtualButton.cs 972 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using UnityEngine;
  2. using UnityEngine.EventSystems;
  3. using UnityEngine.Events;
  4. public class UIVirtualButton : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler
  5. {
  6. [System.Serializable]
  7. public class BoolEvent : UnityEvent<bool> { }
  8. [System.Serializable]
  9. public class Event : UnityEvent { }
  10. [Header("Output")]
  11. public BoolEvent buttonStateOutputEvent;
  12. public Event buttonClickOutputEvent;
  13. public void OnPointerDown(PointerEventData eventData)
  14. {
  15. OutputButtonStateValue(true);
  16. }
  17. public void OnPointerUp(PointerEventData eventData)
  18. {
  19. OutputButtonStateValue(false);
  20. }
  21. public void OnPointerClick(PointerEventData eventData)
  22. {
  23. OutputButtonClickEvent();
  24. }
  25. void OutputButtonStateValue(bool buttonState)
  26. {
  27. buttonStateOutputEvent.Invoke(buttonState);
  28. }
  29. void OutputButtonClickEvent()
  30. {
  31. buttonClickOutputEvent.Invoke();
  32. }
  33. }