using QFramework; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.UI; public class ClickButton : Button { [HideInInspector] public UnityEvent onLeftClick = new UnityEvent(); [HideInInspector] public UnityEvent onRightClick = new UnityEvent(); [HideInInspector] public UnityEvent onMiddleClick = new UnityEvent(); [SerializeField] public bool isOn = false; public GameObject obj; public override void OnPointerClick(PointerEventData eventData) { switch (eventData.button) { case PointerEventData.InputButton.Left when onLeftClick.IsNotNull(): onLeftClick.Invoke(); break; case PointerEventData.InputButton.Middle when onMiddleClick.IsNotNull(): onMiddleClick.Invoke(); break; case PointerEventData.InputButton.Right when onRightClick.IsNotNull(): onRightClick.Invoke(); break; } } }