Unity3D UGUI:UI组件及GameObject的事件监听系统

Unity新的UI系统的监听事件的用法有很多种,在UGUI刚出来的时候,网上也搜到过很多种用法,今天我就把这几种方法整理一下,分享给大家。

Unity3D UGUI:UI组件及GameObject的事件监听系统-图片1Unity3D UGUI:UI组件及GameObject的事件监听系统-图片2

首先,是第一种方法,也是最直接简单粗暴的方法,但是这种方法只能在UI系统上使用,就是直接在UI组件上绑定事件,这个效率是最高的,但也是最麻烦的。要一个一个的去拖拽脚本到组件上。这个方法不光是Button组件,其他组件也会可以使用,比如InputField等。文章源自大腿Plus-https://www.zhaoshijun.com/archives/772

第二种方法也是比较简单粗暴的,但是相对事件功能上要强大的多,也不依赖组件本身,也可以使用在非UI的GameObject上,这种方法如果用在非UI的物体上,需要在主相机上添加一个PhysicRaycaster组件才能使用。文章源自大腿Plus-https://www.zhaoshijun.com/archives/772

Unity3D UGUI:UI组件及GameObject的事件监听系统-图片3

第三种方法就是用代码动态的给组件加监听事件,这种方法其实和第一种原理是一样的。都是利用组件本身的事件接口去实现相应事件的方法,只不过是用代码实现的动态添加的事件监听文章源自大腿Plus-https://www.zhaoshijun.com/archives/772

下面是放个按钮的添加监听事件的方法,其中一个是带参数的添加方法。文章源自大腿Plus-https://www.zhaoshijun.com/archives/772

第四种方法是和第二种方法的原理是一样的,和第三种方法的实现方式是一样的,在这里也就不多说了,下面直接放上代码。下面代码是用拓展的方式写的,如果单独用可以自行提取相应代码。文章源自大腿Plus-https://www.zhaoshijun.com/archives/772

最后一种方法,是根据NGUI的UIEventListener衍生出来的,用起来也是比较方便的,这个方法是在雨松大大的博客里看到的,我做了一写整理和修改。把一些常用的事件和相应的参数调整了一下,并且可以用在非UI的物体上。文章源自大腿Plus-https://www.zhaoshijun.com/archives/772

文章源自大腿Plus-https://www.zhaoshijun.com/archives/772文章源自大腿Plus-https://www.zhaoshijun.com/archives/772
我的微信
微信扫一扫
weinxin
shijun_z
我的QQ
QQ扫一扫
weinxin
846207670
 最后更新:2023-10-24
大腿Plus
  • 本文由 大腿Plus 发表于 2017年11月16日 12:14:40
  • 转载请务必保留本文链接:https://www.zhaoshijun.com/archives/772

发表评论