关于UGUI和NGUI监听的研究

本文介绍如何在Unity中使用UGUI和NGUI实现按钮点击监听。通过代码方式为按钮添加监听事件,展示了两种不同UI系统的基本用法,并给出了Slider监听的例子。

关于UI的监听的研究:

自从unity更新4.6后,UGUI就出现在我们研究中,我们以前学习unity的时候都会给Button拖一个Public 的方法,这个方法就不多提了,挺简单的。那么如果不拖,怎么代码实现呢?

首先,我们制作一个Button:

给Image添加Button组件,这样一个Button按钮就做好了,给其添加一个脚本test.cs

using UnityEngine;
using System.Collections;
using UnityEngine.UI;//引入UI
public class test : MonoBehaviour {

    private Button button;
	void Awake() {//在Awake里获取
        button = GetComponent<Button>();
	}
    void Start()
    { //参数赋值
        button.onClick.AddListener(delegate()//监听
        {
            this.OnClick(gameObject);
        });

    }
    void OnClick(GameObject btn)
    {
        print(btn.name);
    }
运行:
这样就实现了代码监听。

那么NGUI怎么做呢?

同样的方法也还是建一个Button

添加脚本test1.cs

using UnityEngine;
using System.Collections;

public class test1 : MonoBehaviour {

    private UIButton button;//定义NGUI的按钮

    void Awake(){
        button = GetComponent<UIButton>();
    }

	void Start () {
        EventDelegate ed3 = new EventDelegate(this, "OnClick");
        button.onClick.Add(ed3);//添加监听方法
	}
    void OnClick() {
        print(button.name);
    }
	
运行神奇的事出现了:

点击一下打印了两回。这里神奇了,正常情况是打印一次的。其实这个跟代码监听没有关系的。这个把代码拖给Button也是一样的,这里需要注意点。当然还有UIEventListener,SendMessage(),这里就不多提了。

当然了这种用法还有Slide的值也可以用这么写,这样就可以完成Slider的值来控制声音等的大小了。代码如下

        EventDelegate ed3 = new EventDelegate(this, "OnClickSlider");
        voiceslieder.onChange.Add(ed3);
    //slider的监听方法
    void OnClickSlider()
    {
        for (int i = 0; i < bgaudioSource.Length; i++)
        {
            bgaudioSource[i].volume = voiceslieder.value;
        }
       




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值