您的位置:首页 > 移动开发 > Unity3D

Unity3d使用delegate

2013-09-29 10:47 239 查看
using UnityEngine;
using System.Collections;

public class delegateTest : MonoBehaviour {
delegate void PrintSomething();//定义委托,注意返回类型和参数
PrintSomething m_print;//定义委托变量(委托是一个数据类型)
void Start() {
m_print = GUI1;//使委托变量指向一个方法,亦可以使用+=运算符使委托变量指向多个方向,执行m_print();时就会执行附加在其上的所有方法。
}
//要执行的委托方法
void GUI1() {
Debug.Log("GUI01");
GUI.Label(new Rect(100,100,100,100),"GUI1");
}

void GUI2()
{
Debug.Log("GUI02");
GUI.Label(new Rect(100, 100, 100, 100), "GUI2");
}

void OnGUI() {
if (GUI.Button(new Rect(0, 0, 100, 100), "GUI1")) {
m_print = GUI1;//改变委托变量指向的方法
}
if (GUI.Button(new Rect(100, 0, 100, 100), "GUI2"))
{
m_print = GUI2;
}
m_print();//执行委托变量指向的方法
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐