步骤:
(一)通过层级面板创建一个新的游戏Canvas,在该Canvas上创建一个Panel用于安放各个组件
(二)在Panel上创建一系列的Button。如图:
修改Button的形状,内容和位置。
(三)创建一个名为TestClick的脚本,并在脚本上定义一个Click方法。
using UnityEngine;
using System.Collections;
public class TestClick : MonoBehaviour {
public void Click()
{
Debug.Log("Button Clicked");
}
}
以上四个步骤,虽然已经对按钮进行了事件绑定,但是可以发现弊端非常地明显,就是对于一个按钮,需要用一个Monobehavior来进行监听。显然这样做不行,下面我们来学习下利用Delegate和Event来做一个通用类UIEventListener来处理事件。
关于UIEventListener
首先UIEventListener是什么,以及是干嘛用的,首先借用源码里的注释,注释一目了然,不做翻译了。
NGUI中的UIEventListener使用起来很方便,只需要把UIEventListener这个脚本绑定到一个带有Boxcollider的对象上就可以实现点击,可以实现Button,也可以实现Sprite点击。
UIEventListener.cs 对一些常用的事件进行了封装和继承。
一 常用事件:
void OnClick ():点击事件;
void OnDoubleClick ():二次或多次点击事件