Unity CI 检查

如何把 Unity 资源合并检查加入 CI

Unity 资源合并问题不应该只在打开 Editor 后才发现。CI 可以在 PR 阶段阻止 unresolved conflicts、missing scripts、dangling references 和危险的 YAML 合并状态。

7 Wolves 2026 年 6 月 7 日 9 分钟阅读 Unity 工作流

为什么 Unity 资源合并检查应该进 CI

场景和 Prefab 的错误合并可能不会让代码编译失败,但会破坏关卡、Prefab overrides、引用或脚本绑定。CI 的价值是把这些问题提前暴露给 reviewer。

有用的检查应该覆盖什么

一个实用的检查不只是 grep conflict markers。它应该知道哪些 Unity 资源发生变更,并能解析这些资源中的引用和对象状态。

  • 阻止 `<<<<<<<` 等未解决 conflict markers。
  • 解析变更的 `.unity`、`.prefab`、`.asset`、`.mat`。
  • 检查 missing scripts、dangling references 和异常 GUID/fileID。
  • 输出 Markdown 或 JSON 摘要给 PR reviewer。

实用 CI 工作流

先收集 PR 中变更的 Unity text assets,再运行快速结构检查。对高风险变更生成语义报告,并在有未解决决策时让 CI fail,而不是把问题留给主分支。

MergeSight CLI 放在哪里

MergeSight CLI 可以用于 inspect、check、auto-plan、validate-plan、preview 和 apply 等步骤。团队可以在 PR 中发布 artifacts,让 reviewer 不打开 Unity 也能看到资源变更摘要。

dotnet Libraries/StandaloneCLI/bin/mergesight.dll check
 dotnet Libraries/StandaloneCLI/bin/mergesight.dll preview

FAQ

CI 能发现 Unity 资源合并问题吗?

可以。它能阻止 conflict markers、解析 YAML、检查引用和发布语义摘要。

这些检查要每个 PR 都跑吗?

至少应在包含 `.unity`、`.prefab`、`.asset` 或 `.mat` 变更的 PR 上运行。

CI 检查能替代 Unity 测试吗?

不能。它补充 Unity 测试,专门关注序列化资源状态和合并风险。

总结

Unity 资源合并问题不应该只在打开 Editor 后才发现。CI 可以在 PR 阶段阻止 unresolved conflicts、missing scripts、dangling references 和危险的 YAML 合并状态。

Summary

CI 能看到

变更文件、YAML 状态、冲突标记和结构问题。

CI 容易漏掉

没有语义解析时的层级、引用和 override 含义。

应该增加

Unity-aware parsing、validation 和 reviewer artifacts。

Next step

在真实 Unity 资源上审查这些变更

如果你的团队正在处理 Unity scene、prefab、material 或 YAML asset 的合并风险,可以查看 MergeSight 如何把 raw YAML 转成可审查的 Unity 上下文。