首页 > 编程语言 > 详细

Unity之一天一个技术点(十九)--初学委托

时间:2015-02-26 18:36:13      阅读:233      评论:0      收藏:0      [点我收藏+]

委托这个对于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之一天一个技术点(十九)--初学委托

原文:http://blog.csdn.net/myk7694503/article/details/43954875

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!