概览
GameCardSystem(GCS)是面向 Unity 的卡牌肉鸽战斗框架,可视化编辑战斗内容与规则,并通过 API 和事件接入项目系统

上图展示了 GCS 卡牌肉鸽框架的完整可视化构筑体系,在 Game Card Editor 中创建的卡牌、状态和敌人通过 FlowGraph Editor 配置 Behavior,进入 Play Mode 后可在 Game Card Monitor 追踪同一份内容的结算与等待记录,再回到对应资产调整规则
从场景初始化进入完整工作链路
初始化场景会准备 Manager、Bootstrap 与六类内容数据库,Battle Runtime 运行这些数据库定义的遭遇战
上图中的 Battle Runtime 同时提供战斗诊断和代码接入,Monitor 帮助查找需要修改的 Behavior,自定义 HUD、地图、任务和存档可通过 GCSApi 与 Events 读取或响应战斗状态
| 能力范围 | 核心规模 | 对项目的直接价值 |
|---|---|---|
| 可视化内容创作 | 6 种编辑模式 | 在同一窗口创建卡牌、卡组、玩家、敌人、状态与遭遇战 |
| 可视化玩法编排 | 148 个节点条目、103 组机制配方 | 用节点组合表达卡牌、状态与敌人行为 |
| 运行时与代码接入 | 176 个 GCSApi 公开成员名、48 个内置事件 | 读取、控制、保存、恢复和扩展战斗,连接项目流程与自定义 UI |
| Play Mode 诊断 | 7 个 Monitor 标签页 | 核对实时状态、等待来源、Flow 执行摘要与事件历史 |
| 随包成品 | 13 场战斗、2 套彼此隔离的数据库 | 分别运行 12 场单角色战斗与 Party Showcase,不混合两套创作数据 |
初始化战斗场景
打开 Game Card System 并点击 Initialize System,GCS 会创建或复用 GameCardManager 与 GameCardEncounterBootstrap,补齐战场、手牌、HUD 和表现对象,并注册六类预设数据库,完成后即可创作内容或启动固定 Encounter

面板中的 Manager、六类数据库与 Bootstrap 全部就绪后,场景已经具备战斗入口,完整对象职责见战斗场景,固定入口与动态入口的区别见战斗启动

Game Card Editor 的 List、Inspector 与 Preview 围绕当前内容同步更新,List 管理数据库和条目,Inspector 编辑定义及其 Behavior,Preview 检查外观、内容构成、行为摘要和直接引用,另外,六种模式共用搜索、筛选、排序、Undo/Redo、Validation 与 Used By,完成一种内容后可以沿引用关系继续创建下一种内容
| 内容 | 主要定义 | 在战斗中的职责 |
|---|---|---|
| 卡牌 | 名称、描述、费用、类型、Target、关键词、美术与 Behavior | 玩家行动、卡牌生命周期与结算规则 |
| 卡组 | 卡牌条目与份数 | Starting Deck、Reward Deck 与 Master Deck 的内容来源 |
| 玩家角色 | HP、能量、初始卡组、Prefab 与资源显示 | 玩家单位、起始资源与角色表现 |
| 敌人 | HP 范围、Tier、Prefab、Intent 与 Behavior | 预告并执行敌人行动 |
| 状态 | Buff/Debuff、叠加、上限、衰减、图标与 Behavior | 持续效果、规则修改、计数与回合响应 |
| 遭遇战 | 玩家、敌人阵容、奖励卡组与 Battle Rules | 把已有内容装配成可以启动和结算的战斗 |
卡牌是主要创作对象,单角色数据库包含 80 张卡牌、5 个大类和 4 个稀有度,Party Showcase 的独立数据库则包含 Strike、Defend 与四张队友目标卡牌,这些内容展示了攻击、技能、爆发、支援、诅咒,以及费用变化、多段攻击、状态施加、卡牌生成、牌堆操作与队友目标

左侧的玩家单位定义玩家控制的角色:HP、能量显示、初始卡组、职业标签、prefab 和预览美术,Demo 包含战士、法师、猎人、牧师四条职业线

右侧的敌人单位通过意图 Behavior 选择行动,随包 16 个敌人覆盖普通、精英、Boss 与召唤物

状态用于表达增益、减益、计数器和规则修改,随包 30 种状态覆盖持续伤害、护盾、力量/敏捷式数值变化、控制状态、反伤、再生,以及 hook 驱动的规则修改

这六类内容以 ScriptableObject 子资产的形式保存在对应数据库中,进入战斗后,GCS 会据此创建彼此独立的卡牌、单位、状态和牌堆实例,HP、费用与状态层数等运行数据只在实例中变化,不会写回原始资产,内容如何组织和启用见数据库管理,静态定义与运行实例的边界见定义与运行实例
Game Card Editor 定义战斗中有哪些对象及其引用关系,Card、Status 与 Enemy 的实际行为则交给 FlowGraph Behavior
用节点组合玩法行为
Card、Status 与 Enemy 分别拥有自己的 Behavior,同时共用节点、端口和执行上下文,Entry 决定何时启动,控制线组织顺序和分支,数据线传递单位、卡牌、集合与计算结果,固定字段不足以表达动态规则时,可以将字段切换为端口并接收上游数据

上图中的卡牌、状态与敌人共用 FlowGraph 画布,卡牌从出牌或生命周期入口开始结算,状态通过 Entry 与 Hook 响应战斗,敌人通过 Intent Pattern 选择行动,编排这些行为时可以使用 146 个核心节点与 2 个 Demo FX 扩展节点,并用 Group 收拢相关节点,保留原有执行关系
| 节点家族 | 数量 | 主要职责 |
|---|---|---|
| Entry | 33 | 在战斗、回合、卡牌、单位、状态、能量或事件时机启动 Behavior |
| Hook | 18 | 在伤害、护甲、治疗、能量、抽牌、费用等结果提交前修改或取消 |
| Action | 27 | 修改 HP、护甲、能量、卡牌、状态、变量、回合和单位 |
| Operator | 22 | 比较、计算、筛选、排序、选取、合并和转换数据 |
| Get | 19 | 读取单位、卡牌、牌堆、状态、变量与事件参数 |
| Flow | 10 | 组织分支、循环、序列、Choice、Switch、Wait 与 Gate |
| FX | 7 + 2 Demo | 请求 VFX、SFX、动画、飘字、位移、闪烁与镜头反馈 |
| Intent | 6 | 构建敌人意图叶节点、序列、随机与生命阈值模式 |
| Event | 2 | 发送 GCS 内部事件或可选 GES 事件 |
| Group | 1 | 整理复杂画布,不改变内部真实执行关系 |
流图基础解释控制流、数据流、上下文和求值,节点总览提供各家族入口,三个配方库提供 103 组可编辑 FlowGraph
| 机制范围 | 配方入口 |
|---|---|
| 多段攻击、X 费、抽弃牌、发现、重放、变形、费用和卡牌生命周期 | 52 个卡牌配方 |
| 毒、灼烧、力量、易伤、荆棘、壁垒、沉默、复活、装备和全局规则 | 30 个状态配方 |
| 意图序列、加权随机、Boss 阶段、召唤、分裂、逃跑、牌堆干扰和跨系统事件 | 21 个敌人配方 |
这些配方只使用正式节点与运行时,复制后可以继续修改端口、字段和目标来源,Behavior 完成后便会在 Play Mode 中产生费用变化、目标选择、伤害、状态、牌堆移动和表现请求
在 Play Mode 中执行并验证规则
玩家打出卡牌时,GCS 会检查当前 Phase、手牌归属、有效费用、目标、关键词与 Hook,操作成立后执行 Card Behavior,再通过 Controller 更新伤害、护甲、状态与牌堆,卡牌随后进入 Discard 或 Exhaust,需要玩家选择或等待特定流程时,Behavior 可以显式使用 Choice、Wait 或 Gate,普通 VFX、SFX 和动画请求不会自动阻塞阶段

画面中的玩家与敌人 HP、手牌费用、能量、牌堆数量、敌人意图和当前回合都来自同一份战斗状态,Encounter 决定初始阵容与规则,Behavior 负责结算,战斗状态机持续推进回合、敌人行动、Choice、Reward 与胜负判定
| 运行范围 | 负责的结果 | 深入阅读 |
|---|---|---|
| 战斗生命周期 | 初始化、玩家回合、敌人阶段、胜利、失败、Choice 与 Reward | 战斗流程、战斗生命周期 |
| 卡牌与牌堆 | Draw、Hand、Discard、Exhaust 与跨战斗 Master Deck | 卡牌与牌堆生命周期 |
| 目标选择 | Self、Opponent、All、Selector、随机目标和玩家选择 | 目标选择 |
| 状态与 Hook | 叠加、衰减、来源、Behavior 与提交前修改 | 状态生命周期 |
| 表现与等待 | UI、VFX、音频、动画、Wait、Gate 与 Choice | 自定义 UI 接入、FX 节点与流程节点 |
| 场景与启动 | Manager、Bootstrap、Battle Board、Hand、HUD 与 Presentation | 战斗场景、战斗启动 |
| 保存与继续 | Run 与稳定战斗检查点、本地槽位、已有存档系统及场景恢复 | 存档与恢复 |
这些系统共同维护最终战斗结果,画面无法解释结果来源时,Game Card Monitor 会把实时状态与执行过程放到同一个诊断窗口中
用 Game Card Monitor 核对结果

上图中的七个标签页分别提供结果证据和过程证据,Battle、Pile 与 Unit 用于确认当前战斗、牌堆和单位状态,Phase、Gate、Flow 与 Event 则用于判断流程停在何处、哪些节点已经访问,以及对应事件是否触发
| 标签页 | 可以检查的内容 |
|---|---|
| Battle | Encounter、Phase、Turn、玩家、敌人、Pending Intent 与等待状态 |
| Pile | Hand、Draw、Discard、Exhaust 与 Master Deck |
| Unit | HP、护甲、能量、状态层数、存活状态和 Pattern Walk |
| Phase | 阶段转换历史与 Choice Pending |
| Gate | Holder、Active Reasons 与 Acquire/Release 记录 |
| Flow | Behavior Owner、Trigger、访问节点数与同步执行耗时 |
| Event | 事件时间线、Payload 摘要与订阅者数量 |
Game Card Monitor说明全部字段和检查顺序,问题索引从启动、出牌、状态、事件与表现异常进入对应修复路径,Monitor 确认战斗实际发生了什么,GCSApi 则让项目代码读取这些结果并提交下一项操作
通过 GCSApi 接入项目并继续扩展
GCSApi 是项目代码访问战斗的统一入口,HUD、地图、任务、存档和开发工具可以用它启动战斗、提交玩家操作、读取状态、安全修改战斗并订阅事件,这些调用和可视化内容驱动的是同一份战斗状态,最小接入只需选择 Encounter 并提交玩家意图,具体规则仍由内容资产和 Behavior 决定
using TinyGiants.GCS.Runtime;
GCSApi.StartBattle(encounter);
bool played = GCSApi.TryPlayCard(card, target);
GCSApi.EndPlayerTurn();
GCSApi 使用指南按接入顺序给出完整示例,API 参考列出全部公开成员,事件使用指南与事件参考说明 48 个内置事件的订阅方式和精确时机
游戏需要在关闭后继续时,GCSSaveController 将保存并退出、继续游戏按钮连接到稳定检查点,检查点保留有序牌堆、单位状态、状态与 Hook 进度、敌人计划、延迟效果和待选奖励,存档与恢复同时说明如何把检查点合并到项目已有的存档记录
项目需要专属机制时,扩展仍然使用同一套 FlowGraph 与运行时契约
| 扩展点 | 适用场景 | 文档 |
|---|---|---|
| 自定义节点 | 增加玩法动作、数据来源、选择器、运算或表现请求 | 自定义节点 |
| 自定义端口 | 推断字段输入,声明结果输出、选项与控制分支 | 自定义端口 |
| 执行上下文 | 读取输入和目标,通过 Controller 修改状态并发布结果 | 执行上下文 |
| 类型、标签与描述 Token | 增加项目分类、筛选维度与动态卡牌文本 | 扩展卡牌类型、标签与描述 Token |
| 可复制样例 | 从七类家族模板和七个对应成品节点开始扩展 | 自定义节点 |
四个注册表会自动发现符合契约的节点、卡牌类型、标签与描述 Token,不需要维护手工注册清单,另外,项目同时使用 GameEventSystem 时,可以通过GES 集成在 FlowGraph 与外部事件系统之间建立双向通道
随包 Demo 提供可以拆解的完整成品
Demo 使用正式创作工具、FlowGraph、运行时与表现接口构建可运行的战斗,Warrior、Mage、Hunter、Priest 各有 Normal、Elite、Boss 三个单角色场景,Party Showcase 复用 Hunter 场景,并使用独立的六个数据库展示三角色队伍
| Demo 内容 | 数量 | 组成 |
|---|---|---|
| 可运行场景 | 13 | 12 场职业战斗与 Party Showcase |
| 单角色数据库 | 12 个 Encounter、12 个 Player、16 个 Enemy、80 张 Card、16 个 Deck、30 个 Status | 原有四条职业线及其完整可复用内容 |
| 多角色数据库 | 1 个 Encounter、3 个 Player、3 个 Enemy 定义、6 张 Card、1 个 Deck、5 个 Status | Scout 提供共享 Party Tactics,三名玩家对战 Hunter 的 Normal、Elite 与 Boss 敌人 |
Demo 总览说明数据库与内容规模,Demo 战斗场景展示全部阵容和实机画面,Demo 内容参考与资源布局则把场景结果连接回内容资产及其文件归属
这些成品同时提供工程质量证据,说明同一套工具链已经覆盖多职业构筑、普通战、精英战、Boss 阶段、召唤、复杂状态和战后奖励
面向正式项目的工程边界
| 工程维度 | 已提供的基础 |
|---|---|
| Unity 与渲染管线 | Unity 2021.3 LTS 需使用 2021.3.18f1 或之后的补丁,支持 Unity 2022.3 LTS 与 Unity 6,Demo 支持 Built-in Render Pipeline 和 URP |
| 运行依赖 | GCS 运行时零第三方依赖,过渡与程序动画使用 TinyGiants 自有 TGTween |
| 内容稳定性 | ScriptableObject 子资产保存定义,Unity 引用连接内容,Active Database 控制主动发现范围,GUID 支持内容查找 |
| 创作保护 | Game Card Editor 提供 Undo/Redo、Validation、Used By 与跨数据库复制;FlowGraph Editor 检查节点身份、Host 与端口结构 |
| 运行一致性 | Controller 统一提交修改,Hook 在提交前修改或取消,事件广播变化,显式 Gate 等待表现完成 |
| 诊断能力 | Monitor 显示 Battle、Pile、Unit 快照,并记录 Phase、Gate、Flow 与 Event 历史 |
安装与初始化提供支持版本、导入步骤与首场景检查,项目结构用于查找包内容和项目数据
选择下一步
评估 GCS 时先运行第一场战斗或 Demo 场景,准备接入项目时进入第二场战斗、内容创作或代码集成,其余主题按当前任务选择
| 当前目标 | 推荐入口 |
|---|---|
| 体验一场完整战斗 | 第一场战斗 |
| 从空场景创建自定义战斗 | 第二场战斗 |
| 理解内容、Behavior 与运行机制 | 数据库管理、流图基础、战斗流程、运行时概览 |
| 创建卡牌与战斗内容 | 卡牌、卡组、玩家角色、敌人、状态、遭遇战 |
| 查找节点或现成机制 | 节点总览、卡牌配方、状态配方、敌人配方 |
| 接入 UI 与项目代码 | GCSApi 使用指南、自定义 UI 接入、事件使用指南 |
| 保存进度并在以后继续 | 存档与恢复 |
| 扩展节点与内容类型 | 自定义节点、自定义端口、执行上下文 |
| 排查创作或运行问题 | 问题索引、内容创作问题、运行时问题 |