为了方便Unity物体之间的通信,Unity推出了SendMessge方法
脚本调用该方法进行发送消息,可以使自身所有脚本或者父物体 子物体身上的所有脚本进行接收,其接收的类型为Object
方法名称:
SendMessage 发送给自身的所有脚本
SendMessageUpwards 发送给自身的所有脚本以及自身父物体,父物体的父物体等身上所有脚本
BroadcastMessage 发送给自身的所有脚本以及自身子物体,子物体的子物体等身上所有脚本
参数依次为:接收消息方法名称,发送的Object对象,当没有接收者是否提示发送失败消息
在发送消息的脚本里调用发送方法,在接收消息的脚本里定义接收方法。
代码如下:
发送消息
1 2 3 4 5 6 7 8 |
void Start () { // 发送给自身的所有脚本 SendMessage ("MessageTest", this.gameObject, SendMessageOptions.RequireReceiver); // 发送给自身的所有脚本以及自身父物体,父物体的父物体等身上所有脚本 SendMessageUpwards ("MessageTest", "Upwards", SendMessageOptions.DontRequireReceiver); // 发送给自身的所有脚本以及自身子物体,子物体的子物体等身上所有脚本 BroadcastMessage ("MessageTest", "111"); } |
相对应的接收消息
1 2 3 4 5 6 7 8 9 |
void MessageTest (GameObject _g){ Debug.Log (_g.name); } void MessageTest (string _s){ Debug.Log (_s); } void MessageTest (bool _b){ Debug.Log (_b.ToString()); } |
- 本文固定链接: http://www.u3d8.com/?p=276
- 转载请注明: 网虫虫 在 u3d8.com 发表过