首页 > 代码库 > Unity3D 新版NGUI事件添加

Unity3D 新版NGUI事件添加

 在新版的NGUI中,事件机制发生了变化,添加的事件的方式也与之前有所差别了。

 我们来看看普通的控件事件:

1.不带参数的事件,例如UIButton,如下图所示:


 在UIButton中,我们只需要拖动包含事件处理的脚本到OnClick上面,然后勾选处理事件的函数即可。


2.带参数的事件

 在很多事件中,我们需要了解到某些参数的变化,来做一系列的操作的,例如UISlider,UIToggle等,如下图所示:

 



 大家可以看到,在UIToggleUISlider上的事件更改为On Value Change了。

 也就是说,可以将某些更改的属性作为参数传入事件处理的方法。

 同样的,在Notify后面拖入包含事件函数的脚本的物体,选择执行事件的Method方法,然后在Arg那里,选择传入某个Object的某个属性

 例如:上面的UIToggle,我们传入了UIToggleisChecked属性,用于根据是否选中,来做不同的操作;同样的,在UISlider中,我们在函数中传入了UISliderValue属性,也就是说我们拖动UISlider,然后UISlider的当前值会传入到执行事件的函数参数里。

 这样的更改,对于我们来说,事件的添加更加简化和明了了。还是很方便的。


3.其他的事件

 对于NGUI提供的控件来说,本身的事件已经可以很简单的添加了。那么,如果是我们自己的UITexture等Object,又如何执行点击等事件呢?

 首先,我们需要给我们的UITexture添加一个Box Collider(显而易见,涉及到事件处理,那必须有Collider碰撞),然后添加一个Event Trigger脚本。这个脚本就是用来处理点击,双击,拖动等等事件的。

 如下图所示:

 

 同样的我们只需要拖动自己的事件脚本物体到Notify上面,并且选择执行的事件即可。

 那么,简单的介绍就到这了。

 总的来说,NGUI目前的事件机制相对而已已经很方便了,我们可以很容易的通过非代码操作来关联和事件处理。在很长一段时间里,Unity自带的UI应该无法撼动NGUI的地位。

 本文章为个人原创,转载请注明出处,个人博客地址:http://www.wjfxgame.com,本人CSDN博客:http://blog.csdn.net/wingfourever


Unity3D 新版NGUI事件添加