Unity3d使用delegate

来源:互联网 发布:java 列出n之前的质数 编辑:程序博客网 时间:2024/05/01 08:39
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();//执行委托变量指向的方法    }}

原创粉丝点击