我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用Unity怎么给物体动态添加事件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用Unity怎么给物体动态添加事件

这篇文章给大家介绍使用Unity怎么给物体动态添加事件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

using System.Events;using System.EventSystems;//_go is the gameobject which need add event//_go 是物体,因为EventTrigger是unity中的一个组件,我们要用添加组件的方式来给物体添加事件触发组件//_type is the EventTriggerType(point , drag , clickdown......//_type 是要添加的事件触发类型,这是一个内置枚举//_action is the funtion//_action 这里之前写的时候可能是没有注意就写上了funtion了,其实这应该是一个委托一个UnityAction类型的委托void AddTriggerEvent (GameObject _go , EventTriggrtType _type , UnityAction<BaseEventData> _action){        // 查看是否已经有这个组件        EventTrigger trigger = _go.GetComponent<EventTrigger>();        // 如果没有就添加组件        if (trigger == null)        {            trigger = _go.AddComponent<EventTrigger>();        }        //2021年2月20日更新        //没有必要加这句话,因为你使用的只是一个引用,并不是属性        //if (trigger.triggers.Count==0)        //{        //    trigger.triggers = new List<EventTrigger.Entry>();        //}        //新建触发实例        EventTrigger.Entry entry = new EventTrigger.Entry();        // 之前我在项目里写的时候是直接添加的方法,没有用传值的方式,所以这里写的有些累赘        //UnityAction<BaseEventData> callBack = new UnityAction<BaseEventData>(_action);                // 修改之前累赘写法        //entry.callback.AddListener(callBack);        entry.callback.AddListener(_action);        //设置实例类型        entry.eventID = _type;        // 将实例添加到触发列表中        trigger.triggers.Add(entry);}

这个事件触发是使用的unity内置的事件触发系统,所以在使用的时候一定要有

使用Unity怎么给物体动态添加事件

这两个组件,就是你在场景里新建UI组件的时候自己新建的那个东西

如果是UI的话,可以直接添加,但如果不是UI的话,确保两件事

1) 确保相机上有射线组件

使用Unity怎么给物体动态添加事件

这两个组件分别对应3D物体和2D物体

2)要被检测的组件一定要有collder组件

只有这样才能保证eventtrigger的正确实现

补充:Unity 动态给物体添加EventTrigger事件

给挂载该脚本的物体自动添加 EventTrigger 组件:

[RequireComponent(typeof(EventTrigger))]public class ModelComponent : MonoBehaviour{}

给物体动态添加 EventTrigger 的触发事件:

private  void AddEventTriggerFun(EventTriggerType eventTriggerType, UnityEngine.Events.UnityAction<BaseEventData> unityAction){      // 定义所要绑定的事件类型      EventTrigger.Entry entry = new EventTrigger.Entry();      // 设置事件类型      entry.eventID = eventTriggerType;      // 初始化回调函数      entry.callback = new EventTrigger.TriggerEvent();      // 定义回调函数       UnityEngine.Events.UnityAction<BaseEventData> callBack = new UnityEngine.Events.UnityAction<BaseEventData>(unityAction);      // 绑定回调函数      entry.callback.AddListener(callBack);      eventTrigger.triggers.Add(entry);}

调用测试:

private EventTrigger eventTrigger; private void Start(){    eventTrigger = GetComponent<EventTrigger>();    EventTest();}private void EventTest(){    AddEventTriggerFun(EventTriggerType.PointerClick, (BaseEventData baseEventData) => { ClickEvent(); });}private void ClickEvent(){   Debug.Log("点击事件绑定成功...");}

关于使用Unity怎么给物体动态添加事件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用Unity怎么给物体动态添加事件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用Unity怎么给物体动态添加事件

这篇文章给大家介绍使用Unity怎么给物体动态添加事件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。using System.Events;using System.EventSystems;//_go is the
2023-06-14

JAVA怎么动态给实体类添加属性

在Java中,实体类是由属性和方法组成的对象。通常情况下,我们在定义实体类时会给出固定的属性。但是有时候,我们需要在运行时动态地给实体类添加属性。在Java中,可以使用反射机制来实现动态给实体类添加属性。下面是一个示例代码:```javai
2023-09-26

Jquery中怎么动态添加元素并添加点击事件

本文小编为大家详细介绍“Jquery中怎么动态添加元素并添加点击事件”,内容详细,步骤清晰,细节处理妥当,希望这篇“Jquery中怎么动态添加元素并添加点击事件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。给动态
2023-06-17

使用Java怎么给PPT添加动画效果

使用Java怎么给PPT添加动画效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java程序代码1. 添加预设动画效果a. 新建PPT文档,添加形状,设置动画效果impo
2023-06-14

vue动态添加元素点击事件不起作用怎么办

在Vue中,很多时候我们需要动态地添加元素到页面上。然而,有时候我们会发现这些动态添加的元素的点击事件不起作用,这是为什么呢?本文将为您介绍原因及解决方法。一、原因我们首先来了解一下为什么动态添加的元素的点击事件不起作用。这是因为Vue在页面加载过程中会对已存在的元素进行监听,当点击事件发生时,会触发Vue实例上的对应方法。但是,当我们动态添加元素时,Vue并不会自动为这些元素
2023-05-14

使用PYQT5 怎么给listwidget滚动条添加滚动信号

使用PYQT5 怎么给listwidget滚动条添加滚动信号?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。PYQT5中给listwidget的滚动条添加滚动信号
2023-06-08

Vue中怎么使用addEventListener添加事件和removeEventListener移除事件

今天小编给大家分享一下Vue中怎么使用addEventListener添加事件和removeEventListener移除事件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读
2023-07-04

vue3动态加载组件及动态引入组件怎么使用

本篇内容介绍了“vue3动态加载组件及动态引入组件怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.问题在做一个用vite构建的vu
2023-07-05

vue自定义组件怎么添加使用原生事件

今天小编给大家分享一下vue自定义组件怎么添加使用原生事件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。自定义组件如何添加使
2023-06-30

EF中怎么使用Code First模式给实体类添加复合主键

这篇文章主要介绍“EF中怎么使用Code First模式给实体类添加复合主键”,在日常操作中,相信很多人在EF中怎么使用Code First模式给实体类添加复合主键问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
2023-06-29

使用K近邻算法与CSS动态字体加密后Python怎么反爬虫

本篇内容主要讲解“使用K近邻算法与CSS动态字体加密后Python怎么反爬虫”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“使用K近邻算法与CSS动态字体加密后Python怎么反爬虫”吧!  1.
2023-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录