Agent Skills
返回列表
💻

Unity 6 构建流水线

开发编程 更新于 2026.08.29

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

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

技能介绍

要解决的问题

Unity 6 项目的构建问题往往不发生在“点击 Build”那一刻,而是出现在设置与自动化链路里:场景明明在编辑器能加载,却没进包;切换平台后脚本后端或工具链没准备好,导致 IL2CPP 失败;为了控包体开了托管裁剪,结果反射路径在运行时丢方法;CI 里只判断函数“有返回”,没看 BuildReport,于是错误被当成成功;Addressables 内容没有单独构建,资源是旧的或缺失;不小心把 BuildOptions.Development 发到了线上。

核心能力与关键步骤

这个技能聚焦 Unity 侧的构建 API 与设置,目标版本是 Unity 6 (6000.0 LTS)。典型流程是:

  • 场景列表:在 Build Settings/Profiles 或 EditorBuildSettings.scenes 中维护要发布的场景,只有列入且启用的会出包;scene 0 是启动场景。
  • 平台目标:用 BuildTarget / EditorUserBuildSettings 选择并切换目标平台。
  • 脚本后端:在 Player Settings 里选 Mono(迭代快,偏桌面)或 IL2CPP(AOT C++, 适配更多平台、性能更好、逆向难度更高),并确保机器上安装了对应平台的 C++ 工具链。
  • 包体与性能:设置 Managed Stripping Level(Disabled → Minimal → Low → Medium → High),用 link.xml 保护仅反射使用的代码,并为不同平台配置 Quality Settings。
  • 脚本化构建:调用 BuildPipeline.BuildPlayer(BuildPlayerOptions),然后检查返回的 BuildReport;summary.result 非 Succeeded 必须让流水线失败。
  • 无头/CI:以 -batchmode -quit -executeMethod 运行,并检查退出码。
  • 验证:实际启动产出的玩家包确认能跑,而不只确认构建未抛异常。

适用边界与注意点

端到端的 CI 服务配置属于 DevOps 范畴,这里不包办;主机/平台认证细节属于平台 NDA 范围;商店分发请配合 steam-publish / itch-publish。常见的坑包括:场景未列入或被禁用导致运行时 SceneManager.LoadScene 找不到;IL2CPP 在新机器上缺工具链而失败;裁剪引发 MissingMethodException / TypeLoadException,需要降档或补 link.xml;把“调用返回”当成功而忽略报告;Addressables 需要单独执行内容构建并指向正确加载路径;发布版避免使用 BuildOptions.Development。如需完整多平台脚本样例与 Addressables 构建调用,可参考 references/ci-build-script.md。

使用场景

  • 项目升级到 Unity 6 后,整理 Build Settings 场景列表并设置启动场景。
  • 切换 Windows 与 Android 目标时,选择 Mono 或 IL2CPP 并确认工具链。
  • 在 CI 中调用 BuildPipeline.BuildPlayer,按 BuildReport 判定成功或失败。
  • 开启托管裁剪后遇到反射异常,调整档位并用 link.xml 保留相关类型。

适合人员

  • Unity 客户端工程师:需要稳定复现并自动化玩家构建。
  • CI/DevOps 工程师:要为 Unity 项目接入无头批量构建与退出码检查。
  • 技术美术或构建负责人:负责控制包体、裁剪策略与平台质量设置。
  • QA 自动化工程师:想验证构建产物可启动并检查报告结果。