用 Trigger 和 Chain 控制事件顺序
死亡音效和粒子可以由同一个事件分别启动,复活需要等淡出和场景加载完成时使用 Chain,把两种连接挂到同一个源事件后,每条响应都能按自己的时序执行
在同一个事件上连接 Trigger 和 Chain
用 Trigger 派发独立响应
触发一次源事件即可派发各个满足条件的 Trigger 目标,没有延迟时,GES 按优先级从高到低派发,各目标可以自行执行后续工作

将三个无参目标注册在同一个无参源事件上,这里禁用输入的优先级最高,因此在这三个立即派发的目标中先执行
onPlayerDeath.AddTriggerEvent(onDisableInput, priority: 20);
onPlayerDeath.AddTriggerEvent(onPlayDeathSound, priority: 10);
onPlayerDeath.AddTriggerEvent(onSpawnDeathParticles, priority: 5);
打开 Trigger Event Demo,检查同一个源事件如何连接施加增益、判定命中以及通知其他系统的分支

用 Chain 排列有依赖的步骤
Chain 节点在派发前等待 Delay,在派发后等待 Duration,启用 Wait Completion 会在持续时间之后再等一帧,如果后续步骤依赖动画、场景加载或其他异步操作的结果,在回调中发出完成事件,由该事件启动后续流程

按执行顺序把步骤注册到同一个源事件,组成一条 Chain,这个例子先淡出屏幕,等待配置的时间再启动场景加载;加载代码完成后发出 onRespawnSceneLoaded
onPlayerDeath.AddChainEvent(onFadeToBlack, duration: 1.0f);
onPlayerDeath.AddChainEvent(onLoadRespawn);
onRespawnSceneLoaded.AddChainEvent(onTeleportPlayer);
onRespawnSceneLoaded.AddChainEvent(onResetPlayerState);
onRespawnSceneLoaded.AddChainEvent(onFadeIn, duration: 1.0f);
onRespawnSceneLoaded.AddChainEvent(onEnableInput);
在 Chain Event Demo 中,炮塔先检查安全锁再充能和发射,检查失败会在充能前停止这条 Chain

从同一个源事件启动两类响应
将前面的 Trigger 和 Chain 一起注册到 onPlayerDeath,音效与粒子由 Trigger 分别启动,淡出与加载由 Chain 控制,场景加载完成后再进入复活步骤

调整节点类型和参数
当独立响应改为有先后依赖的步骤时,右键节点并选择 Convert to Chain,反向转换使用 Convert to Trigger

连线时,用兼容性颜色核对两端的事件签名,绿色表示匹配,黄色表示兼容但会舍弃部分或全部数据,橙色表示需要类型转换,红色表示不兼容,如果目标应使用默认参数,打开节点检查 Pass Argument

在代码中需要自定义转换时,向泛型重载传入 argumentTransformer,例如从 GameEvent<DamageInfo> 的参数中取出伤害值,再传给 GameEvent<float>
onDamage.AddTriggerEvent(onDamageNumber,
argumentTransformer: damageInfo => damageInfo.amount);
确定条件控制哪一步
Flow Gate 决定节点是否派发目标事件,Trigger 条件失败时跳过对应分支,Chain 条件失败时停止这条 Chain 的剩余步骤
Game Event Behavior 中的 Action Condition 控制该事件绑定的 Event Action,GES 2.3 起,Game Event Receiver 也可以在 Inspector 中启用独立的动作条件,例如静音时跳过音效,同时保留其他监听器和流程步骤
把相同模式用到其他流程
通知多个系统
积分、数据上报、音效和界面可以从同一个击败事件分别响应,用 Trigger 直接连接各目标,选中相关节点并使用 Create Group,即可在画布上一起管理这些分支

排列过场步骤
镜头移动用时固定时,用 Chain 安排镜头移动后打开对话,若选项界面要等待玩家读完对话,由对话系统发出完成事件,再打开界面

切换 Boss 阶段
用 Trigger 启动警告音和镜头震动,用 Chain 排列无敌状态和攻击模式切换,如果要等动画播完再生成敌人,从动画完成事件启动生成流程

在 Play Mode 中检查
打开 Game Event Monitor 后触发源事件,在 Recent 中核对触发顺序,在 Automation 中追踪连接,目标事件缺失时检查 Flow Gate 和时序,目标已触发但没有效果时检查监听器及其动作条件
打开 Trigger Event Demo · 打开 Chain Event Demo
🚀 全球开发者服务矩阵
🇨🇳 国区开发者社区
- 🛒 Unity 中国资产商店
- 🎥 B站官方视频教程
- 📘 高性能架构技术文档
- 💬 国内技术交流群 (1071507578)
🌐 全球开发者社区
📧 支持与合作
- 🌐 TinyGiants 工作室主页
- ✉️ 官方支持邮箱
