Unity 工具链修复实录:让 AI Agent 直接驱动 Unity 编辑器编译与测试

在这里插入图片描述

项目:Unity 2022.3 模拟经营游戏
环境:macOS / Unity 2022.3.51f1c1 / Unity Pipeline(com.unity.pipeline 兼容分支)


一、背景:为什么需要这套工具链

在做 ChaRestaurant 这个 Unity 2D 模拟经营游戏时,我们引入了 Unity Pipeline(Unity 官方的 com.unity.pipeline 包)——它能在 Unity Editor 内部跑一个 HTTP 服务器,让外部程序(CLI、CI、AI Agent)远程驱动编辑器:触发编译、跑测试、改场景、查日志、控制 Play Mode。

理想的工作流是:

AI Agent / CI 脚本
    │  HTTP 请求
    ▼
Unity Editor (内置 Pipeline HTTP 服务器, 端口 7800)
    ├── 触发 recompile → 返回编译结果
    ├── 运行单元测试 → 返回测试报告
    ├── 读写场景/资源/组件
    └── 控制 Play Mode / 截图 / 查日志

这套工具链能让 AI Agent(如 Claude / Codex / 自研 Agent)直接驱动 Unity 编辑器,实现"改代码 → 自动编译 → 跑测试 → 拿结果"的闭环自动化。

但问题是:这套工具链一开始根本没有配置成功。


二、问题诊断:为什么"没配置成功"

拿到任务后,我按顺序排查了 6 个环节,发现了整整 6 个问题:

问题 1:unity CLI 根本没安装

检查 which unitycommand not found。官方文档说通过 Unity CDN 安装:

curl -fsSL https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.sh | UNITY_CLI_CHANNEL=beta bash

安装后得到 unity CLI v0.1.0-beta.3。

问题 2:com.pipeline.unity2022 包严重不完整

仓库里 Packages/com.pipeline.unity2022/ 只有 3 个文件(完整包应有 582 个):

com.pipeline.unity2022/
├── Runtime/Common/BasePipelineServer.cs      ← 唯一的核心文件
├── Runtime/Unity.Pipeline.asmdef
└── Tests/Editor/ServerLifecycle/PipelineServerTests.cs

BasePipelineServer.cs 里引用了 Unity.Pipeline.ModelsUnity.Pipeline.CommandsUnity.Pipeline.SecurityUnity.Pipeline.Threading 等命名空间——全部不存在,代码根本编译不过。

问题 3:manifest.json 从未引用 pipeline 包

Packages/manifest.json 里根本没有 com.pipeline.unity2022 / com.unity.pipeline 的依赖项,Unity 压根不会加载它们。

问题 4:fork 依赖的 Roslyn 在项目里不存在

fork 的 asmdef 声明了 precompiledReferences 指向 Microsoft.CodeAnalysis*.dll 等 Roslyn DLL,但项目 Assets 里一个都没有

问题 5:asmdef 引用了未安装的 InputSystem

fork 的 asmdef 引用 Unity.InputSystem,但项目 manifest 里没有这个包。

问题 6:官方源码有 Unity 6 专属 API

从官方 0.3.1-exp.1 拉下来的源码里,用到了 PhysicsMaterial(Unity 6 才有的类型,2022.3 叫 PhysicMaterial)和 Material.rawRenderQueue(Unity 6 属性,2022.3 只有 renderQueue)。


三、修复过程:六步走

第一步:找到完整源码

仓库里的 fork 是基于 Unity 官方内部包 com.unity.pipeline(版本 0.3.1-exp.1)做的 2022.3 兼容适配。我从 Unity 官方包注册表下载了原始 tarball:

https://download.packages.unity.com/com.unity.pipeline/-/com.unity.pipeline-0.3.1-exp.1.tgz

对比后发现:fork 的 BasePipelineServer.cs 和官方源码几乎一致(只差 watchdog 心跳的几行改动),确认 fork 就是官方源码的轻量适配。

第二步:补全包结构

把官方源码的 Runtime/Editor/CodeGen/ 全部复制进 com.pipeline.unity2022/(共 309 个文件),并:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值