近期热门
粉丝5
关注 0
获赞 0
unity中C#委托的应用

[U3D] unity中C#委托的应用

[复制链接]
2478 1 0 0 9年前 举报
unity 中的 有一种类型 叫委托类型  今天在蛮牛教育上学习了一些  跟大家分享一下 我们常常将委托和事件合
起来讲,其实他们两是有些区别的,委托(delegate)是一种类型,而事件(Event)是一种实例(委托中的一种)
代码如下
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class TestDelegate : MonoBehaviour  
  5. {  
  6.   
  7.     //定义一个委托(格式是不是很类很像),用来指向我们某个函数。(c++里面的指针函数)  
  8.     //param参数是名字  
  9.     private delegate void DebugString(string param);  
  10.   
  11.     /// <summary>  
  12.     /// 输出中文名字  
  13.     /// </summary>  
  14.     public void DebugNameOfChina(string str)  
  15.     {  
  16.         Debug.Log("中文名字:" + str);  
  17.     }  
  18.   
  19.     /// <summary>  
  20.     /// 输出英文名字  
  21.     /// </summary>  
  22.     public void DebugNameOfEnglish(string str)  
  23.     {  
  24.         Debug.Log("English Name:" + str);  
  25.     }  
  26.   
  27.     //定义一个委托的变量事件  
  28.     private DebugString handlerDebugString;  
  29.   
  30.   
  31.     void OnGUI()  
  32.     {  
  33.         if (GUILayout.Button("输出中文名字"))  
  34.         {  
  35.             //我想输出中文名字的话就给handlerDebugString  赋值成输出中文名字的这个函数DebugNameOfChina


  36.             handlerDebugString = DebugNameOfChina;  
  37.             handlerDebugString("丁小未");  
  38.         }  
  39.         else if (GUILayout.Button("Debug English Name"))  
  40.         {  
  41.             //我想输出英文名字的话就给handlerDebugString  赋值成输出中文名字的这个函数

  42. DebugNameOfEnglish  
  43.             handlerDebugString = DebugNameOfEnglish;  
  44.             handlerDebugString("DingXiaowei");  
  45.         }  
  46.     }  
  47. }  
复制代码

0
点赞
0
打赏
0
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论1
您需要登录后才可以回帖 登录

啥也不说了,楼主就是给力!
9年前
回复

使用道具 举报

您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器