關於鼠標移入移出等各種狀態的綁定

直接上代碼把:

綁定的方法實現:

 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);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章