跳到主要内容

GES 集成

Guide

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

集成边界与双向通道​

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

提示

GCS 先通知内部订阅者,再按映射触发对应的 GES 事件,带参数事件会传递原始载荷,缺少映射时仍会通知内部订阅者

检测与安装​

  1. 在同一个 Unity 项目中导入 GES,等待编译和 Domain Reload
  2. 打开 Game Card System 面板,在 GES Event Bridge 中点击 Initialize GES Events
  3. 等待事件类型生成与 Unity 编译,确认显示 48 / 48 Events Synced,已有映射异常时点击 Repair GES Events

同步会把 GCS Runtime Events 数据库注册到当前场景的 GameEventManager,并为 48 个内置事件生成名称、类型与 GES GUID 的映射,保存场景以保留数据库注册

GCS 检测到 TinyGiants.GES.Runtime 后,会为 Standalone、Android、iOS、WebGL 及当前 Build Target Group 设置 TG_GES_INSTALLED,编译完成后可添加 Raise GES Event 与 On GES Event,Encounter Bootstrap 中也会显示 Use GES Events

提示

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

从 Encounter Bootstrap 触发事件​

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

提示

遭遇战启动后,Bootstrap 只执行所选模式的回调,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 会在战斗开始时绑定已激活的 GES 事件,战斗中途才激活的事件要到下一场战斗生效,已绑定的事件触发时,GCS 会执行以下对象中匹配入口所连接的 Behavior

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

  • 存活单位身上的状态

  • 存活敌人的 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 已同步 48 项映射,并检查当前场景的 GameEventManager 是否注册 GCS Runtime Events