NGUI事件监听之UIEventListener的使用

NGUI的事件绑定可以使用 UIButtonMessage

在一个游戏对象上添加Button Message组件:

在Button Message组件上添加要通知的游戏对象上所挂载的脚本的方法

Target:要通知的挂载脚本的游戏对象

Function Name:调用的方法

使用Button Message不是很灵活,还有一种是使用UIEventListener

在unity菜单上选择:Component->NGUI->Internal ->Event Listener

然后把你要绑定的方法的脚本拖到Script中

然后在脚本中进行事件绑定

代码:

    void Awake ()
    {
        //获取需要监听的对象
        GameObject startGameButton = GameObject.Find("UI Root/startGameButton");
        //设置这个对象的监听事件
        UIEventListener.Get(startGameButton).onHover += ButtonHover;
        UIEventListener.Get(startGameButton).onClick +=PlayTapMusic ;
    }

    //计算按钮的点击事件
    void ButtonHover(GameObject button,bool state)
    {
        GameObject swipeSound = GameObject.Find("swipeSound");
        swipeSound.audio.Play ();
    }

    //播放点击按钮的声音
    public void PlayTapMusic(GameObject button){
        GameObject tapSound = GameObject.Find("tapSound");
        tapSound.audio.Play ();
    }

其实只是要在要绑定的对象上挂上一个脚本,然后使用UIEventListener的Get方法进行事件绑定

UIEventListener.Get(要监听的游戏对象).绑定的事件+=方法名;

时间: 2024-10-10 11:09:41

NGUI事件监听之UIEventListener的使用的相关文章

UI事件监听的击穿

什么是UI事件监听的击穿 在游戏视图中,有两个UI界面叠在一起的时候,单击一个空白处,却触发了被覆盖在下层了UI界面中的单击事件,这就是单击击穿了上层界面. 假设场景中放置了一个箱子,单击箱子会触发一个开箱事件,如果单击一个UI,恰好UI在视觉上将箱子覆盖了,那么它也许就会触发箱子的单击事件. 如何避免和解决UI事件监听的击穿 第一种方法:用一层BoxCollider覆盖,进行遮挡. 在界面底板上Attach一个BoxCollider. 第二种方法:使用EventMask Unity的Camer

UGUI事件监听

思路是NGUI的监听方法方便在代码中添加监听: 1 using UnityEngine; 2 using UnityEngine.UI; 3 using UnityEngine.EventSystems; 4 5 [SLua.CustomLuaClass] 6 public class UIEventListener : EventTrigger 7 { 8 public delegate void VoidDelegate(GameObject go); 9 public delegate v

屏幕触摸事件监听,判断上下左右的操作行为,判断方法缩小的操作行为

在手机屏幕上能够实现的人机交互行为,大致包括点击按钮,拉动滑动块,物体缩放,上下左右拉动等. 手机屏幕触摸事件的监听方法: 1.首先要设置一块布局区域,frameLayout/LinearLayout等都可以,并为布局设置id: 2.在Activity中声明相应的布局类型,并通过findViewById()方法找到该布局,然后为该布局区域设置setOnTouchListener()方法,就能监听在相应屏幕触摸操作 实现屏幕触摸事件监听的代码: private LinearLayout Land;

JavaScript-4.5 事件大全,事件监听---ShinePans

绑定事件 <input type="bubtton" onclick="javascript:alert('I am clicked');"> 处理事件 <script language="JavaScript" for="对象" event="事件"> ... (事件处理代码) ... </script> 鼠标事件举例 <script language="

[基础控件]---状态切换控件CompoundButton及其子类CheckBox、RadioButton、ToggleButton、switch事件监听与场景使用

一.事件监听 对于普通的Button,对其进行事件监听Google官方给出了常见的三种监听方式:1.对每一个button设置事件监听器button.setOnClickListener(View.OnclickListener  listener);此种方法当button按钮较多时代码显得多.乱.不够简洁明了. 2.在Activity中实现接口View.OnclickListener,然后重写void onClick(View v)方法,在方法中通过switch(v.getId())予以区分不同

Windows 8 应用程序前后台切换事件监听

在一些情况下,我们需要监听应用程序切换到后台或者从后台切换至前台的事件,从而进行相关处理操作.支付宝应用锁屏(IOS,Android平台)的处理中就需要监听此事件,在用户将应用切换至后台一段时间后再切换至前台的情况下就需要弹出锁屏页面. 下图给出Windows 应用商店应用的生命周期图,应用前后台切换就是在运行和挂起直接进行切换,关于生命周期的详细介绍可以参阅官方文档:http://msdn.microsoft.com/zh-cn/library/windows/apps/hh464925.as

Java中的事件监听机制

鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动作发生在哪个组件上,那么该组件就是事件源对象 2.事件监听方法: addMouseListener(MouseListener ml) ;该方法主要用来捕获鼠标的释放,按下,点击,进入和离开的动作:捕获到相应的动作后,交由事件处理类(实现MouseListener接口)进行处理. addAction

关于v4包的Fragment过渡动画的事件监听无响应问题解决

项目中部分功能模块采用了单Activity+多Fragment模式,当Fragment切换时,需要在过渡动画执行完后做一些操作,通常就是在自己封装的FragmentBase中重写onCreateAnimation方法,创建一个Animation对象,并添加动画的事件监听.而最近升级了v4包后,突然发现添加的动画事件监听无响应了.通过查看源码,发现在v4包中关于Fragment管理类FragmentManagerImpl中,在获取Animation对象后,也添加了对动画的监听事件,也就覆盖了我自己

java事件监听

获取事件监听需要获取实现ActionListener接口的方法, public class SimpleEvent extends JFrame{    private JButton jb=new JButton("我是按钮,点击我");    public SimpleEvent(){        setLayout(null);        setVisible(true);        setSize(200, 100);        setDefaultCloseOp