信号用于在关卡全局发送和监听自定义事件。使用前需要先在编辑器的信号管理器中注册信号;如果编译产物里引用了不存在的信号,注入时会失败。
字符串写法仍然可用,适合没有参数或不需要类型提示的场景:
在全局函数写法中也可以发送信号:
配置了 inject 后,编译器会从地图中提取信号定义到 src/resources/signals.ts。推荐导入其中的 Signal,这样 sendSignal 和 onSignal 都能获得参数类型提示。
Signal.xxx 会保留信号名、参数名和参数类型。发送时参数数量和类型会被 TypeScript 检查;监听时可以通过 evt.params.参数名 访问类型化参数。
信号参数可以混合字面量和节点连线值:
上例中第一个参数来自节点输出,后两个参数是字面量。编译器会把它们写入同一个发送信号节点的对应参数 pin。
Signal.xxx 来自地图提取结果;编辑器里修改信号后,需要先保存地图,然后重新运行编译以提取信号更新的信息。