前言
SendMessage(): 不考虑脚本对象,可以直接来调用某个脚本类的方法
但是消耗大,因为要先找物体,然后挨个挨个找调用的脚本方法
使用测试
创建一个空物体,里面拖入两个脚本sendA,SendB
脚本代码
using UnityEngine;
using System.Collections;
public class SendA : MonoBehaviour {
void Update(){
if (Input.GetMouseButtonDown (0)) {
SendMessage ("ToSend", "AK");
}
}
public void ToSend(string name) {
Debug.Log ("SendA Script Func");
Debug.Log (name);
}
}
public class SendB : MonoBehaviour {
public void ToSend(string name) {
Debug.Log ("SendB Script Func");
Debug.Log (name);
}
}
此时鼠标左击游戏场景,此时不管脚本,两个脚本包含这个ToSend()的方法都被调用了,
但是是在同一个物体上的脚本方法会被调用到,即限制在同一个物体上的脚本方法
扩展
向上传递方法 SendMessageUpwards(“xxx”)
可以触发父物体脚本xxx方法,当前物体其他脚本xxx方法也可以触发向下传播方法 BroadcastMessage(“xxx”)
可以触发子物体和当前物体脚本中的xxx方法