官方文档:
public void BroadcastMessage(string methodName, object parameter = null, SendMessageOptions options = SendMessageOptions.RequireReceiver);
Description:
Calls the method named methodName on every MonoBehaviour in this game object or any of its children.
The receiving method can choose to ignore parameter by having zero parameters. If options is set to SendMessageOptions.RequireReceiver an error is printed when the message is not picked up by any component.
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void ApplyDamage(float damage) { print(damage); } void Example() { gameObject.BroadcastMessage("ApplyDamage", 5.0F); } }
实际应用:
创建一个空物体,然后挂一个脚本。
public GameObject tarGet;//发送信息的物体 void Start() { tarGet.BroadcastMessage("sendMessages", "怪物", SendMessageOptions.DontRequireReceiver); }
再创建一个空物体用作发送信息的物体,挂另一个脚本。
private void sendMessages(string str) { Debug.Log(str + " is sendMessage!"); }
控制台输出信息:
怪物 is sendMessage!