UGUI用代碼添加EventTrigger的監聽事件

手動添加EventTrigger的事件固然方便,但是不利于以后的修改,所以用代碼添加是很有必要的。

起初使用的時候是參考了各家博主的代碼,都大致相似,就直接拿來。但是當我要在一個EventTrigger下添加多個事件的時候,代碼就冗余了,干脆封成一個方法,用起來方便,主要是不用費心思給那些臨時變量起名字了。

代碼如下:

    /// <summary>
    /// 添加EventTrigger的監聽事件
    /// </summary>
    /// <param name="obj">添加監聽的對象</param>
    /// <param name="eventID">添加的監聽類型</param>
    /// <param name="action">觸發方法</param>
    private void AddTriggersListener(GameObject obj, EventTriggerType eventID, UnityAction<BaseEventData> action)
    {
        EventTrigger trigger = obj.GetComponent<EventTrigger>();
        if (trigger == null)
        {
            trigger = obj.AddComponent<EventTrigger>();
        }

        if (trigger.triggers.Count == 0)
        {
            trigger.triggers = new List<EventTrigger.Entry>();
        }
        
        UnityAction<BaseEventData> callback = new UnityAction<BaseEventData>(action);
        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID = eventID;
        entry.callback.AddListener(callback);
        trigger.triggers.Add(entry);
    }

使用示例:

//播放進度條EventTrigger監聽
AddTriggersListener(sliderProgressBar.gameObject, EventTriggerType.PointerEnter, OnVideoPointerEnter);
AddTriggersListener(sliderProgressBar.gameObject, EventTriggerType.PointerExit, OnVideoPointerExit);
AddTriggersListener(sliderProgressBar.gameObject, EventTriggerType.PointerClick, OnVideoPointerClick);
AddTriggersListener(sliderProgressBar.gameObject, EventTriggerType.BeginDrag, OnVideoBeginDrag);
AddTriggersListener(sliderProgressBar.gameObject, EventTriggerType.EndDrag, OnVideoEndDrag);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,814評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,925評論 6 342
  • “分享概要 絕大多數微信運營者或微商都關心吸粉,很多客戶經常問:能不能快速吸粉,做活動之后有沒有效果? 在眾多吸粉...
    早點傳媒閱讀 3,468評論 0 1
  • L小姐扶著快要炸開的頭喝了口水,搖搖晃晃走到窗前,拉開窗簾明媚的陽光傾瀉而出,陽臺上的小植物在陽光的照耀下格外地有...
    栗子的月亮船閱讀 253評論 0 1