配置并验证可视化条件树
先在 Action Condition 中比较事件伤害和阈值,让重击达到阈值时才播放受击动画,如果动作还受目标状态影响,把这些限制加入同一条件组,再在 Play Mode 分别验证通过和不通过的情况
配置条件树
打开事件的 Game Event Behavior,在 Action Condition 勾选 Enable Conditions,点击 + Condition 添加比较,或用 + Group 将几项条件组合起来

AND 要求组内每项都成立,OR 在任一项成立后通过,组中可以继续添加子组,下面的结构要求目标是敌人、生命值低于一半,且这一击为暴击或火焰伤害
AND
├── TargetHealthRatio < 0.5
├── IsEnemy == true
└── OR
├── IsCritical == true
└── DamageType == Fire
在树中核对 OR 子组的缩进,两个伤害类型分支应位于同一组,生命值和阵营条件应留在外层 AND

事件窗口里的条件控制该事件的 Event Action 列表,Receiver Inspector 中的条件控制对应组件的回调,Flow Graph 连接上的条件则用于判断该连接是否执行
选择比较数据
每个比较的两端各自选择数据来源,再按值类型选择运算符

| 数据源 | 读取内容 |
|---|---|
| Event Argument | 当前事件参数,可沿成员路径选择字段或属性,带 Sender 的事件可从 Sender 或 Argument 开始 |
| Scene Type | 当前保存的场景对象引用及其成员,适合读取角色生命值、难度或流程状态 |
| Random | 从数值范围或配置的列表中取值 |
| Constant | 固定值或用于 In List 的列表 |
将对象字段用于能在配置中引用的对象,若每次触发都来自不同运行时实例,可把所需字段放在事件参数中
随机触发
将 Random 设为浮点范围 0 到 1,与 Constant 0.3 比较,使用 < 可得到约 30% 的通过概率

若条件还依赖固定类型或阈值,可继续在同一个 AND 组中添加比较

数值可使用 ==、!=、>、<、>= 和 <=,文本可使用 Contains、Starts With 或 Ends With,集合成员判断使用 In List,在 Inspector 中核对两端类型与可选运算符
在 Mono 和 IL2CPP 中验证
Editor 与 Mono 路径可对未烘焙条件求值,部分路径会缓存编译后的表达式委托,场景成员读取、随机值和条件数量仍会影响运行成本
构建 IL2CPP Player 前,在 Game Event System > Tools & Utilities 中执行 Bake AOT Conditions,等待生成代码完成编译,修改场景、Prefab 或条件后重新烘焙
IL2CPP 中启用的条件缺少有效的生成记录时会输出错误并阻止对应条件通过,构建验证应同时触发通过和不通过的案例
将条件用到实际回调
稀有掉落
把敌人类型放入死亡事件参数,外层用 In List 匹配 Boss 或 Elite,再在 OR 子组中比较玩家幸运值和当前难度等级
AND
├── Event Argument: EnemyType In List [Boss, Elite]
└── OR
├── Scene Type: LuckModifier > 0.5
└── Scene Type: DifficultyRank >= 2
推进移动引导
将当前步骤和完成状态放在引导组件,动作类型与持续时间由事件参数提供,将四项放在同一个 AND 组
AND
├── Scene Type: TutorialComplete == false
├── Scene Type: CurrentStep == Movement
├── Event Argument: ActionType == Move
└── Event Argument: Duration > 1.0
解锁计分成就
两个成就监听同一计分事件,各自使用一个 Receiver,普通成就检查分数至少 10000 且自身未解锁,限时成就再检查计时器小于 300 秒,并使用自己的解锁状态
追加火焰伤害
将事件参数、场景属性和随机值都放进 AND 组,火焰类型、低火抗、高难度和概率判定同时通过后,再执行绑定的火焰加成方法
AND
├── Event Argument: DamageType == Fire
├── Scene Type: FireResistance < 50
├── Scene Type: DifficultyRank >= 2
└── Random (0.0, 1.0) < 0.3
在随包的条件事件 Demo 中可用相同方法核对数据来源与分组结果

