Claude Code做Unity项目移植(一):从零散工具到团队式

最近在用 Claude Code 折腾 Unity 项目移植------把一个 Unity 2017 的 Lua 老 MMORPG 功能,迁到 Unity 2022 的纯 C# 新工程里。 本来以为就是个"代码翻译"的活,真上手才发现坑太多:两个项目架构天差地别,直接扔给 AI 瞎写,要么漏了整条调用链,要么把 Lua 那套架构硬套进 C#,改 bug 的时间比自己写还长。

更关键的是,全堆在一个对话里猛塞代码,上下文很快就脏了,后面的回答质量肉眼可见地下降。索性我就搭了一套完整的自动化移植工作流,从最开始的一堆零散 Skill,迭代成了「主控 Skill + 专业 Subagent」的团队协作模式。今天把整个演进过程和底层思路分享出来,做 AI 辅助开发的朋友大概率能用上。


第一版:堆了7个独立Skill,看着清楚用着累

最开始思路很直白:把移植全流程拆成7步,每一步做一个独立 Skill 命令。 分析 Lua 用 /lua-feature-analysis,分析 C# 用 /csharp-project-analysis,找差异、写方案、写代码、验证、写教程各对应一个工具。skill如下:

  • /lua-feature-analysis:分析 Lua 原始功能,默认只读。

  • /csharp-project-analysis:分析 CSharp 目标工程,默认只读。

  • /migration-gap-analysis:比较两边的功能差异,默认只读。

  • /migration-planner:制定可审核、可迭代的详细移植计划,不写代码。

  • /csharp-feature-migration:仅在当前计划获批后实施代码修改。

  • /migration-validation:核对实际实现与批准计划,默认只读。

  • /migration-tutorial-writer:根据真实分析、批准方案、代码变更和验证结果生成教程,不修改项目代码。

每个 Skill 职责确实清清楚楚,但用起来就别扭了:

  • 得自己记死调用顺序,一步错步步乱
  • 各个工具之间完全不通气,进度全靠人工盯
  • Lua 和 C# 的分析本来能并行干,顺序跑纯纯浪费时间
  • 所有分析结果全堆在主对话里,上下文越跑越脏,后面答非所问的概率飙升

说白了就是一堆零散的螺丝刀扳手,没有个总负责人统筹,而且还在持续污染你的主对话上下文。


升级:加个主控Skill当"项目经理"

既然缺统筹的人,那我就加了一个统一入口:/migrate-feature 你只需要跟它说一句"把某某功能从 Lua 迁到 C#",剩下的全流程它来安排。

它不用自己写代码、自己扒源码,就干项目经理的活: 理解需求 → 查项目资料 → 派分析任务 → 收结果 → 做差异对比 → 出移植方案 → 找人审查 → 等你批准 → 安排编码 → 验收 → 出教程

一下子就省心了,不用自己天天盯着"下一步该调用啥"。更重要的是,大量中间分析过程被封装在流程内部,主对话只保留关键决策节点,信噪比直接拉满。


再细化:4个专业Subagent,各司其职

有了项目经理,干活的人也得专业分工。我把核心专业任务拆成了4个专属 Subagent,各管一摊,只对主控负责。

这里说句掏心窝子的:很多人用 Subagent 只看到了"分工",没看到最核心的价值------上下文隔离。

每个 Subagent 跑在独立的上下文里,Lua 分析员的窗口里只有 Lua 代码和相关知识,C# 分析员的窗口里只有 C# 工程,彼此互不干扰。好处是实打实的:

  1. 上下文不串味。Lua 分析过程里产生的大量中间变量、调用链细节,不会跑到 C# 分析的上下文里去,避免 AI 把两边的架构混在一起瞎发挥。每个 Agent 的注意力都高度聚焦,输出质量更稳。
  2. 主对话极度干净。所有脏活累活的细节都在子 Agent 里消化掉了,主控只把结论和关键证据汇总回来。你的主对话里不会塞满几百行源码片段,Token 省下来的同时,后续对话的理解精度也不会被历史垃圾信息稀释。
  3. Token 消耗更可控。独立上下文用完即弃,不用带着一整个工程的分析记录跑完整条流水线。尤其是大工程分析,单任务 Token 峰值降下来,整体消耗反而更划算。

四个专业角色分工如下:

  1. Lua项目分析员:专门扒老 Lua 源码,定位功能入口、梳理完整调用链、核对消息协议,全程只读不改,输出带证据的分析报告
  2. C#项目分析员:专门研究新 C# 工程架构,找现成的类、消息 Handler、实体逻辑,判断哪些功能可以复用,分析阶段只读
  3. 移植方案审查员:方案写完先过它的手------有没有漏逻辑?有没有乱改现有架构?修改范围清不清楚?潜在风险有没有说明白?
  4. 移植验证员:代码写完它来验收,检查是否按方案执行、调用链是否完整、有没有编译错误,输出验证报告

最终结构如下:

.claude/

├── agents/

│ ├── lua-feature-analyst.md

│ ├── csharp-feature-analyst.md

│ └── migration-plan-reviewer.md

├── knowledge/

│ ├── module-index.md

│ ├── lua-project-analysis.md

│ └── csharp-project-analysis.md

└── skills/

└── migrate-feature/

└── SKILL.md


完整流程长啥样?审批门禁是核心

整个工作流跑下来是这样的:

你提移植需求 → 主控接活 → 同时派 Lua 和 C# 分析员并行干活 → 收齐两份报告做差异分析 → 制定移植方案 → 审查员内审 → 提交给你终审

最关键的一条:你不批准,绝对不许动代码。 这是我专门设的门禁,防止 AI 写嗨了越改范围越大。方案里必须写清移植目标、修改文件清单、每个文件的改动目的、潜在风险和验收标准,还带版本号,你批准哪个版本就按哪个版本来,中途要改范围必须重新走审批。


两个实用细节:提效+避坑

1. 搭个知识库,省Token省时间

每次移植都从头扫整个工程,又费 Token 又慢。我在项目里建了个知识库,提前存好:

  • Lua 项目的架构、核心模块、常用调用关系
  • C# 项目的核心类、消息体系、已有功能清单
  • Lua 和 C# 的模块对应映射表

Agent 干活先查知识库定位,再去源码里核实,不用每次从零开始扫全工程,效率提升很明显。

2. 踩过的坑:后台Agent不是发了就完事

最开始跑的时候,主控说"两个 Agent 后台并行执行中",我就等着出结果。后来才发现: Agent 启动了 ≠ 跑完了 ≠ 主控收到结果了 所以一定要加状态检查机制:跑没跑完?有没有报错?结果有没有正常回收?失败了怎么兜底? 不能只设计正常流程,异常处理也得跟上。功能是独立了,但舱壁隔离没有跟上。


最后总结

从一堆零散 Skill 到「主控 Skill + Subagent」,本质上不是文件夹结构变了,是工作组织方式和上下文管理思路变了:

  • 入口从7个变1个,不用记一堆命令
  • 执行从单打独斗变专业分工,并行干活更高效
  • 上下文从一锅粥变分层隔离,每个 Agent 聚焦单一任务,主对话只留决策信息,信噪比高、Token 省
  • 流程从"分析完就瞎写"变全链路可控,内审+人审双保险

说白了,用好 Claude Code 不是看你会写多少 Prompt,而是看你会不会管理上下文。把不同专业领域的内容拆到独立上下文里去,让主对话只负责流程控制和决策,这才是长时间跑复杂工程的正确姿势。 这套思路其实不止适用于 Unity 移植,很多复杂的开发任务都能这么搭工作流,感兴趣的朋友可以试试。

需要我再补一段适合发技术社群的精简版文案,或者给文章加个结尾互动引导吗?

相关推荐
地狱为王6 小时前
Unity使用VoxLock实现语音隔离
unity·游戏引擎·音频处理·voxlock
deepseek238 小时前
Claude Code 2.1.314 新增工作目录写入边界:工具权限、沙箱与安全盲区怎么分层
人工智能·ai agent·claude code
yz_aiks8 小时前
WorkBuddy 使用技巧:Claude Code 国内平替,签到免费用、自动签到和手机远程控制电脑
人工智能·ai编程·效率工具·claude code·workbuddy
Jmyd012310 小时前
博物馆数字展厅系统架构设计:实景采集到云渲染全链路
unity·系统架构·博物馆·数字展厅·博物馆数字化
ZzT12 小时前
vibe coding 做小游戏·玩法篇:8 句试玩反馈,变成无限关卡、局外成长和援军登场
ai编程·游戏开发
weixin_4242946713 小时前
对于未加入 Script Execution Order 的脚本
unity
暴走约伯13 小时前
【VFX工具链源码拆解 03】告别机械劳动(下):材质字典映射批处理与智能纹理槽识别
unity·游戏引擎·材质
Wanda121414 小时前
机器人与机电一体化3D数字孪生机器-Day9
人工智能·3d·unity·机器人·数字孪生
暴走约伯14 小时前
【VFX工具链源码拆解 01】总体架构:大型项目特效流程的程序化落地
开发语言·经验分享·3d·unity·架构·游戏引擎