unity:5点彻底搞懂委托与事件

 学unity的同学委托事件傻傻分不清楚,今天我就给大家来讲讲什么是Unity的委托的几个要点:

  1: 定义一个委托的类型

委托是一种容器,容器里面放的是函数方法。而函数的形式各不相同,参数,返回值各不相同,所以你做委托之前,先得要定义好这个委托容器存放的函数的类型,即委托类型。

delegate void

Delegate_func(参数1, 参数2)

 这句是定义了一个Delegate_func的委托类型,里面存放的函数的类型为: void Delegate_func (参数1, 参数2)

  2: 定义一个委托容器变量,来存放函数

当我们定义好委托类型后,也就定义了这个容器存放什么样的函数,接下来我们定义一个委托变量, 这个就比较简单了, Delegate_func clicks,如何往容器里面加入函数呢?

一个是赋值=,一个+= 一个是-=;

clicks = xxxx函数; clicks += xxxx函数; clicks -= xxxx函数;

 3: 触发委托:

   定义了好了函数类型后,将函数加入到委托容器后,你只要触发委托调用,委托就会帮你把容器里面的每个函数都调用一次, 触发的时候和调用普通函数没有区别,例如clicks(参数1, 参数2);

4: 委托有什么用呢?

  我们经常希望某个事件发生了以后,就做某种处理, 比如,收到网络事件后做响应的处理。这个时候,我们可以定义一个委托变量,将有事件发生后要处理的函数对象都保存进去, 当有事件发生的时候,触发这个委托,这样,之前的那些函数都会被调用到。有事件了,做哪些处理。

5: event又是什么鬼?

  会有这种情况,一个模块A定义了一个委托变量, 外部模块B,要给这个委托变量添加回掉函数, 这样,我们一般会把这个变量设置成public,直接可以访问,可是问题来了,触发的时候,A模块可以触发,B模块也可以触发,可是我如果只想要A模块触发,B模块只能添加,不能触发,而public权限B模块也可以触发,这种如何解决呢?这个时候定义委托变量的时候,在前面加event, 这样外部模块B,只能往委托里面来添加函数,而不能触发函数调用,触发函数调用,只有模块A,这个就是event修饰的作用。

如果还有疑问,可以加unity学习交流群一起交流学习哦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 8,030评论 2 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,887评论 1 32
  • 1、范型范型所解决的问题 函数、方法、类型:类,结构体,枚举,元组类型,协议参数,返回值,成员函数参数,成员属性类...
    我是小胡胡123阅读 4,357评论 0 1
  • 目标对于我,是个熟悉又陌生的词。最近拜读了弘丹老师《时间的格局》这本书,通过实实在在的例子知道所谓目标就是“对照你...
    懿薇含阅读 4,032评论 0 13
  • 看着你走在我前面--写给儿子! 儿子,看着你上学的班车出发了!我知道——有一天,我会远远地注视你的背影,向我已...
    旁若有人阅读 2,435评论 0 1

友情链接更多精彩内容