在 Unity 中,通过 GameObject 提供的三类消息发送方法,可以向挂载在该对象(及其父子级)上的、所有继承自 MonoBehaviour 的 C# 或 JS 脚本广播方法调用。
三种消息发送方式
SendMessageUpwards:向自身及其所有父级对象上的脚本发送消息。SendMessage:仅向自身对象上的脚本发送消息。BroadcastMessage:向自身及其所有子级对象上的脚本发送消息。
示例代码
.
gameObject.SendMessageUpwards ("func1",100); //自身和父级
gameObject.SendMessage("func2"); //自身
gameObject.BroadcastMessage("func3"); //自身和子级
三个参数,第一个函数名,第二个参数,第三个是SendMessageOptions.RequireReceiver //如果没有找到相应函数,会报错(默认是这个状态)
SendMessageOptions.DontRequireReceiver
参数说明
这三个方法最多接受三个参数:
- 第一个参数是目标函数名(字符串形式)。
- 第二个参数是传递给目标函数的实参。
- 第三个参数是
SendMessageOptions枚举,用于控制在目标函数缺失时的行为。
SendMessageOptions 有两种取值:
SendMessageOptions.RequireReceiver:如果没有找到相应的函数,会报错。这是默认行为。SendMessageOptions.DontRequireReceiver:即使没有找到相应的函数,也不会报错,静默忽略。