ClickButton.cs 880 B

123456789101112131415161718192021222324252627282930313233
  1. using QFramework;
  2. using UnityEngine;
  3. using UnityEngine.Events;
  4. using UnityEngine.EventSystems;
  5. using UnityEngine.UI;
  6. public class ClickButton : Button
  7. {
  8. [HideInInspector] public UnityEvent onLeftClick = new UnityEvent();
  9. [HideInInspector] public UnityEvent onRightClick = new UnityEvent();
  10. [HideInInspector] public UnityEvent onMiddleClick = new UnityEvent();
  11. [SerializeField]
  12. public bool isOn = false;
  13. public GameObject obj;
  14. public override void OnPointerClick(PointerEventData eventData)
  15. {
  16. switch (eventData.button)
  17. {
  18. case PointerEventData.InputButton.Left when onLeftClick.IsNotNull():
  19. onLeftClick.Invoke();
  20. break;
  21. case PointerEventData.InputButton.Middle when onMiddleClick.IsNotNull():
  22. onMiddleClick.Invoke();
  23. break;
  24. case PointerEventData.InputButton.Right when onRightClick.IsNotNull():
  25. onRightClick.Invoke();
  26. break;
  27. }
  28. }
  29. }