跳到主要内容

在 Game Event Monitor 中追踪事件派发

TinyGiants
Unity Games & Tools Developer

拾取钥匙后门偶尔打不开时,先用 Event Finder 找到已配置的发送方和接收方,再打开 Game Event Monitor 复现问题,确认执行停在哪一步

进入 Play Mode 前查找事件引用​

在 Game Event Editor 找到 OnKeyPickedUp,打开它的 Event Finder 并扫描当前场景

List 视图列出引用事件的对象、组件和字段,选中门或拾取组件的记录,即可定位对应的 Inspector 配置

Event Finder 列出引用事件的场景对象与组件

场景中有多扇门时,切换到 Grouped 视图,按组件类型核对各实例是否使用同一个事件资产

Event Finder 按组件类型分组的引用列表

在 Game Event Monitor 中追踪事件​

从 Tools > TinyGiants > GES > Game Event Monitor 打开窗口,进入 Play Mode 后走一遍拾取流程,Dashboard 会汇总当前采集的触发、监听和警告

Game Event Monitor 的 Dashboard 与最近活动

若现象是卡顿,可在 Performance 按 Avg Time 或 Max Time 排序,先定位需要进一步测量的事件

Performance 中按事件记录的执行时间

用 Recent 确认触发​

在 Recent 搜索 OnKeyPickedUp,选中一条记录后,Details 会显示事件名、类型、时间、帧、参数和可用的调用方,记录包含调用栈时也会显示

Recent 中按时间记录的事件触发

有多把钥匙或多个发送方时,核对参数中的钥匙标识与 Called By,可定位这次触发来自哪个入口,在 Statistics 选中事件则可查看累计次数、频率、平均间隔和最后触发时间

查看 Warnings 与 Listeners​

在 Warnings 检查复现期间记录的警告,再用事件名回到相关触发与监听信息

Warnings 中的监控警告

若事件已经触发,在 Listeners 查找门对应的当前监听,结合对象的启用状态检查注册时机,监听存在时再检查目标方法、事件参数和 Action Condition

Listeners 中按事件组织的当前监听信息

在 Automation 中核对事件连接​

若拾取事件通过 Trigger 或 Chain 派发另一个开门事件,在 Automation 找到起始事件并展开分支,检查当前连接和目标事件,再到 Recent 核对目标事件是否触发

Automation 中从起始事件展开的 Trigger 和 Chain

验证钥匙与门的事件流程​

  1. 在加载存档后重新拾取钥匙,在 Recent 核对 OnKeyPickedUp 的参数
  2. 切到 Listeners 核对门的监听,如果监听缺失,检查门在加载后启用时是否已经取得事件资产并完成注册
  3. 确认初始化顺序有误后,修正并用相同存档复现,确认新创建的门监听同一事件并能正常打开

打开监控 Demo