在 Game Event Behavior 中配置事件动作
一个伤害事件可以通过不同回调更新界面、播放音效和触发特效,在 Game Event Behavior 中配置动作列表、执行条件和调度,GES 2.3.0 还允许在 Receiver Inspector 中为单个接收器单独设置 Action Condition
打开 Game Event Behavior
在 Game Event Editor 选中伤害事件,点击对应的 Behavior 按钮,窗口中可配置 Action Condition、Event Action 和 Schedule Configuration

确认事件签名
在 Event Information 核对事件名、参数类型与数据库,目标方法的动态参数应当匹配这个签名

创建一个参数类型为 float 的 OnDamageReceived,将生成的事件资产分配给以下组件,项目的伤害结算完成后调用 PublishDamage
using TinyGiants.GES.Runtime;
using UnityEngine;
public sealed class DamageEmitter : MonoBehaviour
{
[GameEventDropdown, SerializeField]
private GameEvent<float> onDamageReceived;
public void PublishDamage(float amount)
{
if (onDamageReceived != null)
onDamageReceived.Raise(amount);
}
}
设置执行条件
当整个 Event Action 列表需要共用条件时,在 Action Condition 启用 Enable Conditions,添加一个比较,左侧选 Event Argument,右侧选 Constant 并输入 50,运算符选择 >

这里的条件控制 Manager 运行的动作列表,如果伤害数字每次都要刷新、只有镜头震动需要阈值,关闭事件窗口的 Enable Conditions,再把震动和阈值配置到类型匹配的 Receiver 组件中
绑定 Event Action
在 Event Action 中添加一个条目,将场景目标拖入对象字段,选择要执行的方法

选择动态方法时,参数顺序和事件签名一致
| 事件签名 | 方法示例 |
|---|---|
| 无参数 | FlashRed() |
float | ShowNumber(float amount) |
GameObject Sender 与 float Argument | HandleHit(GameObject sender, float amount) |
在方法列表的动态参数区域选择 ShowNumber(float),运行时伤害值会传给该方法

设置 Schedule Configuration
Action Delay、Repeat Interval 与 Repeat Count 作用于当前事件的派发时序,延迟播放音效时可将其绑定到单独的事件,以便保留伤害数字的即时刷新

一次性音效可设 Action Delay 为 0.03、Repeat Interval 为 0,需要在单独事件上触发三次流血回调时,将 Repeat Interval 设为 2,将 Repeat Count 设为 3
同一事件再次 Raise 会取消它尚未完成的自动调度,需要并行计时的效果应由各自的运行对象管理
在 Play Mode 验证伤害响应
- 触发伤害值
30,确认伤害数字和闪屏出现,设置了阈值的镜头 Receiver 保持静默 - 触发伤害值
80,确认镜头震动与基础反馈都执行 - 触发单独的音效或流血事件,核对延迟、重复间隔和次数
项目代码负责结算与触发,场景回调、条件和时序可在对应的事件或 Receiver 上调整
