「Unity」委托 将方法作为参数传递
2015-07-30 10:59
375 查看
在Unity中经常会向函数传参,如:
这是一种传递普通参数的方式,无论想输出什么,只要告诉Print()函数,对方就会帮忙输出。
那么问题来了,有没有一种方式可以:无论想调用什么方法,只要告诉某函数(传参),对方就会帮忙调用呢?
有的,这种方式叫做“委托”。
具体Demo代码:
以上是简单的实现方式。
与委托伴随的是事件和Observer模式,以及.NET下的规范写法
请见C# 中的委托和事件
原创文章,转载请注明出
/article/5538834.html
void Start() { Print("Xxx"); } void Print(string name) { base.print(name); }
这是一种传递普通参数的方式,无论想输出什么,只要告诉Print()函数,对方就会帮忙输出。
那么问题来了,有没有一种方式可以:无论想调用什么方法,只要告诉某函数(传参),对方就会帮忙调用呢?
有的,这种方式叫做“委托”。
具体Demo代码:
class X { //定义委托,括号里参数个数与需要委托执行的函数一致 delegate void Helper(); //输出A void A() { print("A"); } //输出B void B() { print("B"); } //调用函数 void Do(Helper h) { h(); } void Start() { //声明一个委托 Helper helper; //为这个委托赋值,右边写的是需要委托的函数名 helper = A; //把传递给其他函数,这个函数会帮忙调用我们委托的函数 Do(helper); //同上 helper = B; Do(helper); } }
以上是简单的实现方式。
与委托伴随的是事件和Observer模式,以及.NET下的规范写法
请见C# 中的委托和事件
原创文章,转载请注明出
/article/5538834.html
相关文章推荐
- Unity3D之碰撞
- unity3d shader之实时室外光线散射(大气散射)渲染
- unity3d shader之实时室外光线散射(大气散射)渲染
- Unity3d 热更新收集
- Unity手游之路<十三>手游代码更新策略探讨
- 教你快速高效接入SDK——Unity统一接入渠道SDK(Android篇)
- 解决Unity的 The file 'MemoryStream' is corrupted! Remove it and launch 崩溃问题
- 同步定制 Unity团队 程序的C#文件模板
- 天才的大三暑假修行之旅.Unity书籍介绍
- unity笔记
- 复位compiz和unity
- Unity RPG小游戏
- Unity数据传值技术
- 【Unity3d】UGUI + Unity5.1开发碰到打IPA越狱包真机运行掉帧严重问题
- Unity3D 图片空间和内存占用分析
- Unity脚本基础
- Unity 优化全解析2
- Unity 优化全解析1
- 问题解决:Ubuntu 12.04在vmware10下无法进入Unity模式
- GameUnity 2.0 发布倒计时