通过SendMessage可以跟物体内的的组件任意发送
跟物体的父物体发送消息包括自己
SendMessageUpwards("方法名")
跟物体的子物体发送消息包括自己
BroadcastMessage("方法名")
需要自己去测试
测试成功 孙子也能调用
通过SendMessage可以跟物体内的的组件任意发送
跟物体的父物体发送消息包括自己
SendMessageUpwards("方法名")
跟物体的子物体发送消息包括自己
BroadcastMessage("方法名")
需要自己去测试
测试成功 孙子也能调用
向父级和子级对象发送消息
广播消息(向下发,所有子对象包括自己)
BroadcastMessage("GetMsg");
向上发送消息
SendMessageUpwards("GetMsg");
1.向下发送消息:
BroadcastMessage("GetMsg");
2.向上发送消息:
SendMessageUpwards("GetMsg");
GameObject.SendMessage(“method”):可以直接调用GameObject上的所有脚本上的 method方法
1. 方法无论私有公有都可以调用。
2.如果一个脚本上,有2个同名方法,一个有参一个无参,用SendMessage调用时不管有没有填写参数,都默认调用无参的那个方法;只有没有无参方法时才会去调用相匹配的有参方法。
3.如果GameObject上有多个脚本都含有一个同名方法,用SendMessage调用时会将所有脚本上的这个方法都调用一遍。
SendMessage()感觉很牛逼很方便但效率不高所以不常用,因为每次调用的时候都会去遍历检测自身或者子节点上要调用的方法。
优点是可以跨语言,例如Javascript可以调用C#的方法
相关方法
SendMessage(“方法名”, 参数,SendMessageOptions)
调用GameObject自身的Script上的方法
BroadcastMessage(“方法名”, 参数,SendMessageOptions)
调用自身和子Object的Script上的方法
SendMessageUpwards(“方法名”, 参数,SendMessageOptions)
调用自身和父Object的Script上的方法
第三个参数的使用
SendMessageOptions.RequireReceiver 如果没有找到相应方法,会报错(默认是这个状态)
SendMessageOptions.DontRequireReceiver 没有找到相应方法,也不会报错,自动忽略
————————————————
版权声明:本文为CSDN博主「第五君」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fifthgently/article/details/78352876