Unity实现UGUI中按钮的单机、右击和中键点击的判定

发表于2018-09-28
评论0 3.7k浏览
本篇文章给大家介绍下判断UI按钮是单机、右击还是中键点击的状态。

直接上代码吧,把这个代码绑定到Unity的相应Button上即可实现。
public class RightClick : MonoBehaviour, IPointerClickHandler
{
    public UnityEvent leftClick;
    public UnityEvent middleClick;
    public UnityEvent rightClick;
    private void Start()
    {
        leftClick.AddListener(new UnityAction(ButtonLeftClick));
        middleClick.AddListener(new UnityAction(ButtonMiddleClick));
        rightClick.AddListener(new UnityAction(ButtonRightClick));
    }
    public void OnPointerClick(PointerEventData eventData)
    {
        if (eventData.button == PointerEventData.InputButton.Left)
            leftClick.Invoke();
        else if (eventData.button == PointerEventData.InputButton.Middle)
            middleClick.Invoke();
        else if (eventData.button == PointerEventData.InputButton.Right)
            rightClick.Invoke();
    }
    private void ButtonLeftClick()
    {
        Debug.Log("Button Left Click");
    }
    private void ButtonMiddleClick()
    {
        Debug.Log("Button Middle Click");
    }
    private void ButtonRightClick()
    {
        Debug.Log("Button Right Click");
    }
}

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引