关于鼠标移入移出等各种状态的绑定

直接上代码把:

绑定的方法实现:

 EventTrigger.Entry CommonBind(EventTriggerType type, UnityAction<BaseEventData> call)
    {
        // 注册事件
        EventTrigger.Entry enter = new EventTrigger.Entry();
        // 实例化eventID
        enter.eventID = type;
        // 实例化callback
        enter.callback = new EventTrigger.TriggerEvent();
        // 设置事件
        UnityAction<BaseEventData> pointerEnterCB = new UnityAction<BaseEventData>(call);
        // 绑定事件
        enter.callback.AddListener(pointerEnterCB);
        return enter;
    }

使用:

 // 实例化委托列表
        if (triggerArea.GetComponent<EventTrigger>() == null)
            triggerArea.gameObject.AddComponent<EventTrigger>();
        triggerArea.GetComponent<EventTrigger>().triggers = new List<EventTrigger.Entry>();
        // 添加到委托列表
        triggerArea.GetComponent<EventTrigger>().triggers.Add(CommonBind(EventTriggerType.PointerEnter, OnHover));
        triggerArea.GetComponent<EventTrigger>().triggers.Add(CommonBind(EventTriggerType.PointerExit, OnUnHover));
  void OnHover(BaseEventData eventData)
    {
       // Debug.Log("悬浮在UI上外侧");
        m_InformationButton.GetComponent<RectTransform>().sizeDelta = new Vector2(85, 24);
    }
    void OnUnHover(BaseEventData eventData)
    {
        //Debug.Log("退出UI悬浮");
        m_InformationButton.GetComponent<RectTransform>().sizeDelta = new Vector2(24, 24);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章