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();//执行委托变量指向的方法 } }
相关文章推荐
- Unity3D研究之在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信引入中间层
- Unity3D - 关于Delegate - SignalSlot信息槽的使用和SendMessage取替
- Unity3D - 关于Delegate - SignalSlot信息槽的使用和SendMessage取替
- Unity3D的Delegate和SendMessage的性能差测试,以及Delegate在多线程使用要注意的小问题
- Unity3D--Delegate和SendMessage的性能差测试,以及Delegate在多线程使用要注意的小问题
- Unity3D - 关于Delegate - SignalSlot信息槽的使用和SendMessage取替
- Unity3D技巧在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信
- 【Unity3D技巧】在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信
- 【Unity3D技巧】在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信 (二) : 引入中间层NotificationCenter
- Unity3D的Delegate和SendMessage的性能差测试,以及Delegate在多线程使用要注意的小问题
- 【Unity3D技巧】在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信 (二) : 引入中间层NotificationCenter
- Unity3D - 关于Delegate - SignalSlot信息槽的使用和SendMessage取替
- 008-实现Unity3d中使用LeanTouch插件进行触屏控制(拖拽、移动、缩放旋转...)
- 在Unity3D中使用Visual Studio调试shader
- 使用Unity3d和C#的一些属性来设置特殊行为
- Unity3d 应尽量避免使用foreach
- 何时使用block和Delegate?
- Unity3D中C#使用指针(Unsafe)报错处理
- Unity3D教程:如何使用layerMask参数
- unity3d中dllimport方法的使用,以接入腾讯平台为例!!!