首页 > Unity3D之项目开发 > Unity3D之UGUI拓展 > Unity3D UGUI:UI组件及GameObject的事件监听系统
2017
11-16

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

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

首先,是第一种方法,也是最直接简单粗暴的方法,但是这种方法只能在UI系统上使用,就是直接在UI组件上绑定事件,这个效率是最高的,但也是最麻烦的。要一个一个的去拖拽脚本到组件上。这个方法不光是Button组件,其他组件也会可以使用,比如InputField等。
Unity3D UGUI:UI组件及GameObject的事件监听系统 - 第1张  | 大腿Plus Unity3D UGUI:UI组件及GameObject的事件监听系统 - 第2张  | 大腿Plus

第二种方法也是比较简单粗暴的,但是相对事件功能上要强大的多,也不依赖组件本身,也可以使用在非UI的GameObject上,这种方法如果用在非UI的物体上,需要在主相机上添加一个PhysicRaycaster组件才能使用。

Unity3D UGUI:UI组件及GameObject的事件监听系统 - 第3张  | 大腿Plus

第三种方法就是用代码动态的给组件加监听事件,这种方法其实和第一种原理是一样的。都是利用组件本身的事件接口去实现相应事件的方法,只不过是用代码实现的动态添加的事件监听。

下面是放个按钮的添加监听事件的方法,其中一个是带参数的添加方法。

第四种方法是和第二种方法的原理是一样的,和第三种方法的实现方式是一样的,在这里也就不多说了,下面直接放上代码。下面代码是用拓展的方式写的,如果单独用可以自行提取相应代码。

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

最后编辑:
作者:大腿Plus
欢迎大家常来,我不是什么大牛,但是我会将我知道的和大家分享,也希望大家能多提意见,多交流,共同学习。

留下一个回复

This site uses Akismet to reduce spam. Learn how your comment data is processed.