EventDelegate是用于底层进行消息传递和调用的事件委托类型,主要用于对对象事件的监听和处理。
它实际上是一个能够持有对某个方法的引用的类。下面以一个UIButton的单击事件为例,将ClickTheButton
挂载到EventDelegate下面进行回调。源代码如下:
using UnityEngine;
using System.Collections;
public class ButtonClick : MonoBehaviour {
//声明UIButton组件的引用,作为获取组件的引用变量
public UIButton myButton;
// Use this for initialization
void Start () {
if (myButton != null) {
EventDelegate theButtonClickEvent = new EventDelegate(this, "ClickTheButton");
//Nofity回调本身就是一个事件组,直接注册一个EventDelegate类型的事件
myButton.onClick.Add(theButtonClickEvent);
}
}
// Update is called once per frame
void Update () {
}
public void ClickTheButton() {
Debug.Log("单击myButton按钮!");
}
}
可以将该代码绑定到任何一个GameObject上面,为方便管理建议绑定到UIRoot下面,然后将一个附有UIButton和
Box Collider组件的物体添加到myButton的引用下面,最后运行脚本就可以在Console视图看到下面的信息提示。