跳到主要内容

GES 集成

Guide

将 GCS 战斗事件发送到 GES,或通过 GES 事件触发 Behavior,保留 GCS 内部订阅

集成边界与双向通道​

上图展示了 GCS 与 GES 的双向事件连接,已映射的 GCS 事件、Raise GES Event 与 Encounter Bootstrap 向 GES 发送通知,On GES Event 接收 GES 事件并触发 Behavior,可按所需时机选择内置事件或手动配置节点

提示

完成事件同步后,47 个内置 GCS 事件会同时通知内部订阅者与对应的 GES 事件,未建立映射时,内部订阅仍正常工作

检测与安装​

在同一 Unity 项目中安装 Game Event System,GCS 会检测 TinyGiants.GES.Runtime Assembly Definition,并为 Standalone、Android、iOS、WebGL 及当前 Build Target Group 同步 TG_GES_INSTALLED Scripting Define Symbol

安装并同步事件

  1. 导入 GES,项目已经安装时无需重复操作
  2. 等待 Unity 完成编译和 Domain Reload
  3. 检测器找到 TinyGiants.GES.Runtime,加上 TG_GES_INSTALLED
  4. Raise GES Event 和 On GES Event 两个节点就绪,Encounter Bootstrap 中也会显示 Use GES Events
  5. 打开 Game Card System 面板,在 GES Event Bridge 中点击 Initialize GES Events
  6. 等待事件类型生成与 Unity 编译,确认显示 47 / 47 Events Synced,已有映射需要修复时点击 Repair GES Events
提示

移除 GES 后,检测器会清除对应 Define,GCS 随即退回内部事件通道

从 Encounter Bootstrap 触发事件​

选择场景中的 GameCardEncounterBootstrap 并展开 Events,默认通过 On Bootstrap UnityEvent 通知战斗启动,启用 Use GES Events 后,改用 On Bootstrap Events 列表

提示

遭遇战启动后,Bootstrap 按列表顺序触发 GES 事件,两种模式互斥,GES 模式不调用 UnityEvent,UnityEvent 模式不触发 GES 列表

从 GCS 触发 GES 事件​

从 Add Node 菜单的 Event 分类添加 Raise GES Event,在 GES Event 字段中选择事件,选择器按数据库分组,并自动填入 Argument 与 Sender 类型

提示

节点支持无参数、单 Argument 与 Sender Argument 事件,通过 Picker 和 Source 字段指定固定值、Unity Object、结构化数据或当前执行上下文

字段、动态选项、上下文来源与 Primitive 类型限制见 Raise GES Event 节点手册

用 GES 事件启动 Behavior​

从 Entry 分类添加 On GES Event,在节点上选择要监听的事件,战斗期间该事件触发后,GCS 执行连接的 Behavior

GCS 在战斗开始时绑定已激活的 GES 事件,中途激活的事件从下一场战斗生效,已绑定事件触发时,会执行以下对象中匹配的入口

  • 当前位于抽牌堆、手牌、弃牌堆或消耗堆的卡牌

  • 存活单位身上的状态

  • 存活敌人的 Behavior

入口支持无参数、单 Argument 与 Sender Argument 事件,GES Payload 不会传入 FlowGraph,Behavior 从当前战斗状态读取数据

入口校验

On GES Event 未选择事件时,FlowGraph 校验器会报告空引用

没有 GES 时的行为​

未安装 GES 时,GCS 可正常编译运行,内置事件使用内部通道,执行 Raise GES Event 时忽略调用,并在 Console 输出警告

[GCSEventChannelInternal] RaiseGesEvent('...') ignored: GES integration not installed.

包含该节点的卡牌仍可在未安装 GES 的项目中使用,Console 警告用于定位未执行的跨系统通知

保持系统职责边界​

  1. 通过 GES 通知成就、任务、局外成长、数据统计或场景对象,例如 Boss 死亡后解锁成就,或战斗胜利后更新成长数据

  2. 在 GCS 中处理伤害、治疗、状态、卡牌移动、能量与目标选择,使战斗规则保留在卡牌 FlowGraph 中

故障排查​

症状检查项
Raise GES Event 报集成未安装确认项目里有 GES 且 TinyGiants.GES.Runtime 存在,然后让 Unity reload 以更新 TG_GES_INSTALLED
Warning:GameEventManager not found in scene在战斗触发事件之前,把 GES manager 加进场景或完成初始化
Warning:GES 事件 GUID 找不到在节点上重选事件,保存的 GUID 已不对应现有事件
Argument 收到 nullArgument 类型必须能解析,所选来源必须能产出该类型的值,重选事件会重新填好类型
GES 事件拒绝 Sender 或 Argument所选来源的值需要符合事件的参数类型,检查 Console 中的类型警告并重选事件
On GES Event 从不触发节点上必须选好事件,事件在战斗开始时必须处于激活状态,且它所属的卡牌、状态或敌人在触发那一刻要在牌堆里或存活
GCS 事件正常,GES 监听器无响应在 GES Event Bridge 中确认 47 项映射已同步,场景中的 GameEventManager 已注册并启用对应数据库