Unity之一天一个技术点(十九)--初学委托
2015-02-26 17:11
344 查看
委托这个对于C#初学者比较头疼,我也是看了半天资料才稍微弄懂一点,下面的代码还是挺简单的,也算用了委托这么逼格高的技术了。
using UnityEngine; using System.Collections; //三个军衔级别的命令类型// public enum TypeOfCommands { General, Captain, Soldier } public class EventManager : MonoBehaviour { //定义一个通用代理,根据传递类型,发送消息 public delegate void CommonUse(TypeOfCommands cmd); //定义一个事件发送三个军衔的命定 public static event CommonUse whenStep_CommonUse; //通用指令传递事件类型// public static void sendMessage_Common(TypeOfCommands toc) { whenStep_CommonUse(toc); } }
using UnityEngine; using System.Collections; public class MainLogic : MonoBehaviour { public GUIText myGuiText;//用于显示消息的ui文字 void Start() { EventManager.whenStep_CommonUse += whenStep; } //根据命令类型,执行 void whenStep(TypeOfCommands toc) { switch (toc) { case TypeOfCommands.General: myGuiText.text = "i'm General,the captain should hear from me"; break; case TypeOfCommands.Captain: myGuiText.text = "i'm Captain,every soldier need to obey to me"; break; case TypeOfCommands.Soldier: myGuiText.text = "i'm soldier,i need to receive commands"; break; } } void OnGUI() { if(GUI.Button(new Rect(0,0,100,30),"General")) { EventManager.sendMessage_Common(TypeOfCommands.General); } if(GUI.Button(new Rect(0,50,100,30),"Captain")) { EventManager.sendMessage_Common(TypeOfCommands.Captain); } if(GUI.Button(new Rect(0,100,100,30),"Soldier")) { EventManager.sendMessage_Common(TypeOfCommands.Soldier); } } }
相关文章推荐
- Unity之一天一个技术点(九)---EasyTouch 旋转镜头
- Unity之一天一个技术点(十三)---以指定对象为中心,根据鼠标位置旋转照相机
- Unity之一天一个技术点(二)---全局控制物体是否显示
- Unity之一天一个技术点(一)---移动中始终面对对象
- Unity之一天一个技术点(十一)---抛物线效果
- Unity之一天一个技术点(七)---到包围盒的最近点
- Unity之一天一个技术点(六)---在线JS转C#代码
- Unity之一天一个技术点(十六)---狙击镜呼吸效果
- Unity之一天一个技术点(四)---遮挡剔除
- Unity之一天一个技术点(十)---UI添加粒子特效
- Unity之一天一个技术点(十八)---让敌人缓慢转向,并且跟踪玩家
- Unity之一天一个技术点(十五)---给unity3d的老版动画中,添加事件的方法
- Unity之一天一个技术点(五)---解决U3D程序“按下休眠键时退出程序”的问题
- Unity之一天一个技术点(十四)---通过鼠标控制镜头绕着某物体旋转
- Unity之一天一个技术点(十二)---指南针的实现
- Unity之一天一个技术点(三)---判断当前运行的平台
- Unity之一天一个技术点(八)---旋转问题
- Unity之一天一个技术点(十七)---射击游戏发射子弹
- 今天开始,一天一个技术博客
- c#初学-delegate合并委托(多路广播委托)一个委托进行多个函数调用