【UGUI】Slider EventTrigger 拖拽监听

发表于2018-11-30
评论0 800浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏程序行业精英群

711501594
一些button 监听到是很容易,一些OnClick可以满足,但是像Slider有点繁琐,大体是这样的
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using System.Text;
public static class UnityUtility
{
    public static 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);
    }
} 

如何使用呢?

UnityUtility.AddTriggersListener(需要绑定的物体, EventTriggerType 类型, 回调方法);
UnityUtility.AddTriggersListener(strengthSlider.gameObject, EventTriggerType.Drag, OnStrengSliderSelcet);

那么如何删除呢?
 if(strengthSlider.GetComponent<EventTrigger>())  
    {  
      EventTriggertrigger=strengthSlider.GetComponent<EventTrigger>();  
      trigger.triggers.RemoveAll(p=>true);  
    }  
这里是全部删除了。

原文链接

著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

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

游戏学院公众号二维码
腾讯游戏学院
微信公众号

提供更专业的游戏知识学习平台