Agent Skills
返回列表
💻

Unity 6 构建流水线

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/unity-build-pipeline-sh-k4ji2a。

技能介绍

要解决什么问题

Unity 6 项目从编辑器里能跑,到 CI 里稳定产出各平台 Player,中间往往卡在:场景没进 Build 列表、切平台与脚本后端、IL2CPP 缺工具链、裁剪后反射代码在包里才炸,以及把 BuildPipeline.BuildPlayer 的返回值当成成功。本技能聚焦 Unity 侧 Build Settings / Profiles、脚本化构建与无头执行,不替代完整 DevOps 编排或商店提交流程。

技能如何帮你落地

核心流程可以按下面顺序核对:

  • 场景清单:在 Build Profiles/Settings 或 EditorBuildSettings.scenes 里列出并启用要打的场景;索引 0 为启动场景,未列入的 scene 不会进包,SceneManager.LoadScene 也看不到它们。
  • 平台与后端:用 BuildTarget / EditorUserBuildSettings 切换目标平台;在 Player Settings 选 Mono(迭代快、桌面常见)或 IL2CPP(AOT、多平台硬性要求、需本机 C++ 工具链)。
  • 体积与性能:调整 Managed Stripping Level,对仅靠反射的代码用 link.xml 做 preserve;按平台调 Quality Settings。
  • 脚本化构建:BuildPipeline.BuildPlayer(BuildPlayerOptions) 后必须看 BuildReport,summary.result 非 Succeeded 应让流水线失败。
  • CI 无头:-batchmode -quit -executeMethod 跑 Editor 方法,并以进程退出码为准;构建通过后仍应实际启动 Player 验证,而不只是没抛异常。

常见模式包括:带结果检查的脚本构建、无头/CI 调用、以及用 link.xml 防护被裁掉的类型。若项目里已有 ProjectSettings/EditorBuildSettings.asset 或 CI 构建脚本,可直接对照上述步骤改。

适用边界与坑

  • Addressables:玩家构建不会自动重建 Addressables 内容,需单独执行 Addressables 构建并配置正确的加载路径。
  • Development 构建:BuildOptions.Development 会打开调试/Profiler,发布应使用 BuildOptions.None。
  • 不负责:端到端 CI 服务配置、各平台认证 NDA 细节;分发见 steam-publish / itch-publish;编辑器脚本惯例可参考 unity-csharp-scripting。多平台 CI 示例与 Addressables 内容构建可参考技能内的 references/ci-build-script.md。

使用场景

  • 在 Unity 6 项目里首次配置 Build Profiles,把正式关卡场景列入列表并指定索引 0 为启动场景。
  • 移动端要切 IL2CPP 打 Android/iOS 包,需在 Player Settings 选后端并处理本机 NDK/构建工具缺失导致的失败。
  • 为 GitLab/Jenkins 写无头构建:`-batchmode -quit -executeMethod` 调用自定义 `BuildPlayer`,并按 BuildReport 与退出码失败流水线。
  • 发布包只在真机出现 `MissingMethodException`,需下调 Managed Stripping 或为反射类型补充 `link.xml` preserve。

适合人员

  • 负责 Unity 客户端多平台出包的工程师,需要把编辑器里的手动 Build 改成可重复脚本。
  • 维护公司 Unity 流水线的构建/DevOps 工程师,要把 Editor 构建挂到 CI 并统一失败判定。
  • 刚接手 LTS 项目的技术负责人,要排查「编辑器能进场景、包里场景丢失」类构建配置问题。
  • 使用 Addressables 的 gameplay 程序员,需要在 Player 构建前单独跑内容构建并核对加载路径配置。