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();//执行委托变量指向的方法
}
}
Unity3d使用delegate
最新推荐文章于 2024-04-29 18:46:50 发布