概述
Unity 的 GameObject 提供了一组消息分发接口,可以在运行时向绑定在该 GameObject 上的所有继承自 MonoBehaviour 的 C# 或 JS 脚本广播函数调用。根据作用范围不同,分为三种:向自身和父级广播、仅自身、以及向自身和子级广播。
三种消息分发方式
- SendMessageUpwards:作用范围是自身和父级。
- SendMessage:作用范围仅自身。
- BroadcastMessage:作用范围是自身和子级。
示例
gameObject.SendMessageUpwards("func1", 100); //自身和父级
gameObject.SendMessage("func2"); //自身
gameObject.BroadcastMessage("func3"); //自身和子级
参数说明
这些方法最多接收三个参数:
- 第一个参数:要调用的函数名。
- 第二个参数:传递给目标函数的参数。
- 第三个参数:
SendMessageOptions,用于指定在找不到目标函数时的行为。
SendMessageOptions
- SendMessageOptions.RequireReceiver:如果没有找到相应函数,会报错(默认是这个状态)。
- SendMessageOptions.DontRequireReceiver:找不到目标函数时不报错,静默忽略。