作用: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 没有找到相应方法,也不会报错,自动忽略