NGUI监听事件的几种方式

欢迎观看小kobe的博客

本次分享一下NGUI中几种监听方式,监听方式有很多,点击,按下,抬起,托拉拽,滑动等等,这里拿按钮点击状态举例,正常我们都知道想创建一个Button需要给一个Sprite添加一个UIButton.cs和BoxCollider(勾选isTrigger)。但有时候我们不想给Sprite添加UIButton.cs,那么这样如何实现UI的触发事件呢?
我这里做了四种方式分类,仅供参考:
1.OnClick方式
把脚本直接绑定在按钮上,当按钮点击时就可以监听到,参考脚本如下:
切记OnClick名字别写错了,还有UI元素需要添加BoxCollider(勾选isTrigger)。
/// //1.OnClick
/// 执行一次
///
public void OnClick()
{
print(“Click”);
}


2.OnPress方式(仅用于点击事件监听使用)
这种方式和OnClick差不多一样,也会说直接绑在按钮上就可以,但是他会执行两次,鼠标按下执行一次,抬起执行一次。(也是需要BoxClider组件)如果你想仅仅执行一次的话,那么你可以使用bool值判断,当bool值为false的时候在执行。参考脚本如下:
/// 2.OnPress
/// 执行两次
///
public void OnPress(bool isPress)
{
if(isPress ==false)
print(“OnPress”);
}


3.SendMessage方式
选择Sprite后,在Unity导航菜单栏中选择Component->Interaction->Button Message 组件。给Sprite添加即可,(也是需要BoxClider组件),如下图:
NGUI监听事件的几种方式
Target:接收按钮消息的游戏对象。
Function Name:接收按钮消息的方法,拥有这个方法的脚本必须绑定在上面Target对象身上。
Trigger:触发的事件,OnClick点击一次。
Include Children :是否让该对象的所有子对象也发送这个点击事件。
参考脚本如下:
/// 3.SendMessage
///
///
public void Test( )
{
print(“Test”);
}


4.UIListener
在Unity导航菜单栏中选择Component->NGUI->Internal ->Event Listener 。 挂在按钮上就可以,它没有任何参数。
参考图如下:NGUI监听事件的几种方式

然后把代码挂在Sprite上,参考代码如下:

NGUI监听事件的几种方式

这里暂时分享这些,其实单纯从 给一个按钮(带有UIButton组件)添加绑定事件,还有很多方式,比如给按钮编辑器绑定事件,如下图:
NGUI监听事件的几种方式

或者使用EventDelegate:
如下图参考代码:

NGUI监听事件的几种方式

有问题欢迎大家留言分享