校验与 Where Used
Workbench 提供两类检查:校验报告结构性问题,Used By 面板列出一次修改会影响哪些资产。
适用于编辑共享 GCS 内容的开发者。删除、替换或重命名共享资产前,应先阅读本页。这两个工具回答不同问题。校验(validation)回答"这个数据库里结构上哪里有问题?";Used By 面板回答"哪些资产在引用当前资产?"。每次进入 Play Mode 前应查看校验;重命名、替换、删除任何可能被依赖的资产前,应先查看 Used By。
校验在哪里出现
Workbench 校验当前模式列表栏中选中的数据库,并把结果显示为窗口页眉上的徽标。存在 Error 时显示 3 Issues,只剩 Warning 时显示 2 Warnings,数据库没有问题时徽标消失。点击徽标会打开问题列表;每一条都带跳转动作:打开问题资产、聚焦问题字段,或在问题位于行为图时直接打开 FlowGraph 编辑器。
一个实用的循环:
- 打开正在编辑的模式(Card、Deck、Player、Enemy、Status 或 Encounter)。
- 每次编辑后查看徽标,它会随内容实时刷新。
- 逐条点开问题,跳转、修复、重复,直到徽标消失或只剩下有意为之的警告。
- 进 Play Mode。
引用缺失时,编辑器通常已经能发现。进入运行时后,同一问题会表现为更间接的症状:效果没有生效、奖励界面为空,或列表无法填充。
每个模式查什么
| 模式 | Error | Warning |
|---|---|---|
| Card | Name 为空 | 卡牌 Behavior 里的 FlowGraph 问题 |
| Deck | 条目没有指定卡牌;Copies 小于 1 | 无 |
| Player | Name 为空 | 缺少 Starting Deck;缺少 Template prefab |
| Enemy | Name 为空;HP Min 大于 HP Max | 敌人 Behavior 里的 FlowGraph 问题 |
| Status | Display Name 为空 | Max Stacks 为 0(无限用 -1,或填正数);FlowGraph 问题 |
| Encounter | 缺少 Player Unit;没有敌方单位 | 缺少 Reward Deck;Difficulty 为空 |
校验是结构性检查。它能发现卡组条目没有卡,但无法判断卡牌是否平衡、状态是否符合设计、描述是否清楚。面向玩家的质量仍需要人工审阅。
级别含义
级别只有两档:
| 级别 | 含义 |
|---|---|
| Error | 内容已损坏或不能安全运行。测试前必须修。 |
| Warning | 可能是有意为之,但测试前值得做个决定。 |
Warning 需要明确判断,不应自动忽略。没有奖励卡组,对无奖励测试遭遇战可能是合理配置;对正常胜利流程则通常是错误。编辑器无法判断设计意图,因此不会把这类情况升级为 Error。
Used By 面板
在 Workbench 里选中任意资产,预览列的末尾就是 Used By 折叠区。它列出所有引用当前选中项的资产,每条都标注引用方式:Starting deck、Reward deck、Player unit、Enemy unit、Deck entry ×2、Upgrades into this,引用藏在行为图节点里时则显示成 Behavior · Change Status。点击任意一行,就在对应的 Workbench 模式里打开那个资产。

它能找到什么,取决于你选中了什么:
| 选中的资产 | 列出的引用 |
|---|---|
| 卡牌 | 包含它的卡组(带份数)、升级成它的卡牌,以及节点引用了它的卡牌 / 状态 / 敌人行为图 |
| 卡组 | 把它当初始卡组的玩家单位;把它当奖励卡组的遭遇战 |
| 玩家单位 | 派它上场的遭遇战 |
| 敌方单位 | 阵容里包含它的遭遇战 |
| 状态 | 节点施加或读取它的卡牌 / 状态 / 敌人行为图 |
| 遭遇战 | 无。遭遇战是顶层资产,只会被启动,不会被引用。 |
行为图扫描既识别直接资产引用,也识别按显示名称引用卡牌或状态的节点;它会进入分组查找,并报告具体节点,便于定位图中的引用位置。在演示数据库中选中 Poison 状态时,Poison Arrow 会以 Behavior · Change Status 出现在列表中,因为这张卡的行为图会在打出时施加两层 Poison。
当没有任何资产引用选中项时,面板会明确告知这一点,而不是留空。把这条消息当作可以放心删除的信号,而不是故障。
Used By 通过场景 GameCardManager 上注册的数据库解析引用。打开的场景中没有 manager 时,它无法枚举引用,面板会明确提示,而不是显示误导性的空列表。
动手之前先查一遍
| 要做的事 | 先问 Used By |
|---|---|
| 删除一张卡 | 哪些卡组和行为图还包含它? |
| 重命名或替换一个状态 | 哪些卡牌、敌人或状态会施加它? |
| 重做一个敌人 | 哪些遭遇战派它上场? |
| 换掉一个玩家单位 | 哪些遭遇战以它开局? |
| 编辑一个共享卡组 | 哪些玩家单位和遭遇战从它取牌? |
当卡组或状态被多个遭遇战共享时,建议复制副本并在副本上实验。直接修改共享原件会影响所有引用者。
追查运行时症状
战斗表现不符合预期时,先沿内容链排查,再检查图逻辑。多数创作问题来自数据库、卡组或遭遇战引用缺失:
| 症状 | 可能的创作问题 |
|---|---|
| 某张卡从不出现 | 通往这张卡的卡组或玩家单位链路断了。 |
| 遭遇战开场没有敌人 | 敌人列表里有缺失引用。 |
| 施加状态没有任何效果 | 状态数据库未启用,或某个图指向了错误的状态。 |
| 奖励界面没有卡 | 奖励卡组缺失、为空或不可达。 |
| Workbench 列表是空的 | 场景 manager 没有该模式的启用数据库。 |
排查顺序
- 读校验信息。
- 用跳转动作落到字段或图上。
- 确认被引用的资产存在。
- 确认资产位于启用的数据库里。
- 确认场景用的是预期的 manager 和遭遇战。
- 用能复现问题的最小遭遇战重新测试。
一次只修改一个资产。如果同一轮同时修改卡牌、卡组、玩家单位和遭遇战,就无法判断哪个修改解决了问题,也无法判断哪个修改引入了新问题。
校验替代不了什么
校验的价值是尽早发现结构问题,把后续检查留给逻辑、体验和表现。它不能替代 Play Mode 测试、FlowGraph 逻辑审阅(一个图可以结构正确但逻辑错误)、卡面文字审阅、平衡调试,也不能替代表现层 QA。