SuperAPI AI 工具集

unity-event

通用与其它

查看项目

更新于 10-15 17:25

技能介绍

unity-event 是 Unity 编辑器技能模块,用途是在编辑时(Editor time)检查和修改 UnityEvent 的持久监听器,也就是 Inspector 事件槽位中看到的那些回调,例如 Button.onClick、Toggle.onValueChanged。它不创建事件,事件本身需在组件源码中声明;本模块只负责挂接监听器。

主要能力:使用 event_get_listeners 查询事件监听器,event_list_events 列出组件上的所有 UnityEvent 字段,event_get_listener_count 统计数量;使用 event_add_listener 添加持久监听器,event_set_listener 替换指定索引的监听器,event_set_listener_state 设置调用状态(Off、RuntimeOnly、EditorAndRuntime),event_add_listener_batch 批量添加,event_copy_listeners 将监听器从一处复制到另一处;使用 event_invoke 在运行时显式触发事件;使用 event_remove_listener、event_clear_listeners 删除或清空监听器。

使用方式:调用需指定 GameObject(name、instanceId 或 path 之一)与 componentName、eventName;添加监听器还要提供 targetObjectName、methodName,并可选 mode、argType 及静态参数。event_add_listener 只支持 void、int、float、string、bool,不支持 object 参数;event_set_listener 额外支持 object 参数与对象引用。

权限与限制:查询类技能可直接执行,变更/调用类需用户授权;删除类技能在 SemiAuto 模式下被静态拦截,仅 Bypass 模式或加入 Allowlist 可调用。event_invoke 只在 Play mode 或运行时有效,编辑器空跑时仅触发 EditorAndRuntime 监听。不存在 event_create、event_trigger、event_subscribe、event_remove 等技能。XR 交互事件应使用 xr 模块的 xr_add_interaction_event。精确签名以 schema 为准。