首页 > 其他分享 >Unity 代码动态添加EventTrigger

Unity 代码动态添加EventTrigger

时间:2024-06-04 17:00:28浏览次数:26  
标签:EventTrigger eventTrigger callback Unity 添加 ui entry null

public static class UIUltil
{
    public static void RigistEventTrigger(this UIBehaviour _ui, EventTriggerType _eventTriggerType, Action<PointerEventData> _callback)
    {
        if (_ui == null)
        {
            Debug.LogError("invalid UIBehaviour can not be a trigger content.");
            return;
        }
        else
        {
            EventTrigger eventTrigger = _ui.GetComponent<EventTrigger>();
            if (eventTrigger == null)
            {
                eventTrigger = _ui.gameObject.AddComponent<EventTrigger>();
            }

            EventTrigger.Entry entry = new EventTrigger.Entry();
            entry.eventID = _eventTriggerType;
            entry.callback.AddListener((_pointData) =>
            {
                var baseData = _pointData as PointerEventData;
                _callback?.Invoke(baseData);
            });
            eventTrigger.triggers.Add(entry);
        }
    }
    public static void RigistEventTrigger(this UIBehaviour _ui, EventTriggerType _eventTriggerType, Action _callback)
    {
        if (_ui == null)
        {
            Debug.LogError("invalid UIBehaviour can not be a trigger content.");
            return;
        }
        else
        {
            EventTrigger eventTrigger = _ui.GetComponent<EventTrigger>();
            if (eventTrigger == null)
            {
                eventTrigger = _ui.gameObject.AddComponent<EventTrigger>();
            }



            EventTrigger.Entry entry = new EventTrigger.Entry();
            entry.eventID = _eventTriggerType;
            entry.callback.AddListener((_pointData) =>
            {
                //var baseData = _pointData as PointerEventData;
                _callback?.Invoke();
            });
            eventTrigger.triggers.Add(entry);
        }
    }
}

 

标签:EventTrigger,eventTrigger,callback,Unity,添加,ui,entry,null
From: https://www.cnblogs.com/WantPeach/p/18231240

相关文章

  • Alertmanager添加Basic Auth
    从dockerhub中下载的alertmanager镜像默认不带Basicauth,安全检测会存在未授权访问漏洞,重写dockerfile添加启动参数解决此漏洞。1、重写DockerfileFROMprom/alertmanager:v0.27.0USERnobodyCOPYpassword.yml/etc/alertmanager/EXPOSE9093WORKDIR/alertmanagerVOLUM......
  • 如何选择Unity的4种批处理方式
    1)如何选择Unity的4种批处理方式2)Unity编辑器卡顿3)如何解决横屏APP在鸿蒙悬浮窗错误的变为竖屏了4)Hindi问题这是第388篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。UWA社区主页:community.uwa4d.comUWAQQ群:7......
  • vscode如何添加本地python解释器、解析器 Interpreter?(Python: Select Interpreter),并在
    先安装python扩展然后点ctrl+shift+p搜索python:select,选择解析器(或者也可以直接点左下方的) 然后360报毒了,允许通过,然后选择你想要的解释器  然后就好了20230816文章目录在VSCode中添加本地Python解释器 Python解释器简介为什么要在VSCode中设置Python解释器如......
  • 分享一个自制 Excel 转 Unity ScriptableObject 工具
    视频演示链接:https://www.bilibili.com/video/BV1Nw4m1q7qt/资源文件:https://github.com/asyaB404/ExcelToScriptableObject上网找了半天都找不到满意的,所以就自己写了一个本人菜鸟一枚,第一次分享自己的成果,有什么问题或者改进的方式请立即联系我工具包含一个名为Excelabl......
  • Android14 WMS-窗口添加流程(二)-Server端
    Android14WMS-窗口添加流程(一)-Client端-CSDN博客本文接着上文"Android14WMS-窗口添加流程(一)-Client端"往下讲。也就是WindowManagerService#addWindow流程。目录一.WindowManagerService#addWindow标志1:mPolicy.checkAddPermission标志2:getDisplayContentOrCreate......
  • UniTask入门指南:简化Unity中的异步编程
    UniTask入门指南:简化Unity中的异步编程介绍:UniTask是一个轻量级、高性能的异步编程库,专门针对Unity开发进行了优化。与Unity标准的Task系统相比,UniTask提供了更加简洁和高效的异步编程方式。在Unity项目中使用UniTask可以大大提高开发效率,简化异步操作的编码过程。UniTask......
  • Qt QLabel标签添加点击事件
    .h1//给label添加事件2booleventFilter(QObject*obj,QEvent*event);.cpp1boolMainWindow::eventFilter(QObject*obj,QEvent*event){2//mousebuttonpressed3if(event->type()==QEvent::MouseButtonPress){4QMouseEvent*mouseE......
  • 博客园美化:添加顶部浏览进度条
    先看效果图: 顶部进度条会根据浏览页面而变化,话不多说,代码附上:1<script>2(function(w,d){3vardomDiv=d.createElement('div');45domDiv.style.cssText='position:fixed;top:0;left:0;width:0;height:3px......
  • Unity ScrollRect中,拖拽移动Item的顺序
    *UnityScrollRect中,拖拽移动Item的顺序*目标需求制作方法完整代码最终效果备注unitypackage目标需求Unity在制作下拉菜单时,用户可通过拖拽Item,替换当前Item的位置。本教程使用UGUI制作方法创建脚本ScrollRectManager,用于管理整个ScrollRect,我是将脚本Scro......
  • 无法直接启动带有”类库输出类型“的项目。若要调试此项目,请向引用库项目的此解决方案
    原文链接:https://blog.csdn.net/m0_56366948/article/details/137480405当你尝试直接启动一个类库(ClassLibrary)项目时,你会遇到这样的错误消息,因为类库项目本身不生成可执行文件(如.exe文件),它们只是包含可以被其他程序或应用程序引用的代码。为了调试类库项目,你需要创建一个可......