sendmessage和getcomponents

来源:互联网 发布:天猫与淘宝的盈利方式 编辑:程序博客网 时间:2024/06/15 00:35
getcomponents直接就是获得了mono脚本对象的引用,直接诶调用里面的函数,过程很直接。
而sendmessage则会遍历自己的自对象所有脚本找同名函数来调用(具体实现原理应该是反射),查询的过程比较繁琐。
所以后者比前者更消耗性能。

但是后者会比前者在内部通信方面更灵活。比如一个GameObject绑定了好几个独立的脚本,脚本之间想要互相的调用,每次都要Getcomponent是很繁琐的,这时候用Sendmessage反而更方便些。但是SendMessage会让调用关系变得隐性,不好通过编译器找出谁调了谁,维护困难。

而且SendMessage还有个兄弟函数BoardcastMessage可以广播,几个子对象都绑定了相同的脚本拥有相同的函数,那么所有子对象都会响应动作。比方说一个空GameObject下有10架飞机,一个Boardcast就可以将这10个飞机同时给炸了,不然就要循环遍历子对象去调用炸毁的函数。


1、sendmessage 可以不用管你脚本类型,用起来方便,只要脚本上有就响应,
效率低,移动平台尽量不用

2、 GetComponent必须要知道脚本类型才行,所以调用起来没上面方便,但是因为效率问题用得比较多

0 0
原创粉丝点击