本模板用于指导任意 Unity 库迁移到 Godot 的标准流程,确保迁移工作可复用、可验收、可追踪。
适用场景:
- 需要将 Unity 包(Package/Runtime 模块)迁移到 Godot
- 需要统一跨库迁移标准,便于团队协作与审计
- 需要输出结构化迁移报告用于验收
- 源库路径(Unity):
{{UNITY_SOURCE_PATH}}
- 目标库路径(Godot):
{{GODOT_TARGET_PATH}}
- 迁移目标模块:
{{TARGET_MODULES}}(例如:Runtime)
- 先做“目录边界”声明,再开始迁移。
- 非目标模块不参与本轮迁移,不作为阻塞项。
- 若排除模块影响构建,必须通过工程配置显式排除其编译输入。
-
先编译通过,再行为对齐
先建立可编译基线,再逐步补齐功能一致性。 -
先 Runtime,后 Editor
Editor 存在引擎强耦合差异,默认单独立项。 -
最小改动原则
保持原有模块边界与命名风格,避免无关重构。 -
映射优先原则
对 Unity API 做 Godot 等价映射;无等价能力先给占位方案并记录。 -
每步可验证原则
每个子模块变更后立即构建验证,防止回归扩散。
- 确认迁移范围与排除范围
- 配置工程编译边界(例如排除
Editor/**/*.cs) - 执行首次构建,记录初始错误基线
输出:
- 《构建基线记录》
- 统计源/目标
.cs文件总数 - 输出仅源存在文件(未迁移清单)
- 输出仅目标存在文件(新增清单)
输出:
- 《文件覆盖清单》
- 对同名文件进行类声明对比
- 对同名文件进行函数签名对比
- 标记“符合预期差异”与“风险差异”
输出:
- 《类函数差异清单》
- 生命周期映射对齐(如
Awake→_Ready) - 类型映射对齐(如
GameObject→Node) - 平台能力缺口补齐或明确替代实现
输出:
- 《能力映射与缺口清单》
- 全量构建通过(0 error)
- 关键功能路径验证通过
- 输出最终迁移评估结论
输出:
- 《迁移验收报告》
- Unity
Awake→ Godot_Ready - Unity
Update→ Godot_Process - Unity
OnDestroy/OnApplicationQuit→ Godot_Notification(按通知类型分流)
GameObject→NodeTransform→Node/Node3D(按业务选择)Rect→Rect2UnityEngine.Object→GodotObject
Application.persistentDataPath→ProjectSettings.GlobalizePath("user://")Application.streamingAssetsPath→res://streaming_assets/+ 平台适配- 平台判断优先使用 Godot
OS/RuntimeInformation
- 未声明即迁移 Editor 模块
- 在 Runtime 保留不可达但未标注的 Unity API 代码
- 没有构建验证就给出“迁移完成”结论
- 生命周期函数名变化(由引擎机制导致)
- 类型名变化但语义一致(如
GameObject→Node) - 平台路径 API 替换(Unity → Godot)
- 同名核心函数缺失且无替代实现
- 公共类缺失导致上层调用中断
- Runtime 仍存在可执行路径中的 Unity API 依赖
- 未激活宏分支中的 Unity 遗留代码
- 可替代但尚未优化的实现
必须同时满足:
- 目标范围内文件迁移完成并有差异说明
- 目标工程构建通过(0 error)
- 核心功能路径可运行
- 所有 B 类差异闭环(修复或有明确替代方案)
- 输出完整迁移报告并可复查
建议报告标题:
{{LIB_NAME}}_Runtime_迁移对比报告.md
建议章节:
- 对比范围
- 总体统计(文件数、覆盖率、差异率)
- 未迁移文件清单
- 类与函数差异清单
- 符合预期项
- 不符合预期项
- 风险与建议
- 结论(是否达到预期)
- 范围已确认(含排除模块)
- 构建命令已确认
- 验收标准已确认
- 每个模块改动后都构建验证
- 差异都已分类(A/B/C)
- 缺口都有处理策略
- 0 error 构建通过
- 迁移报告已输出
- 结论已给出“符合 / 部分符合 / 不符合”
该库在本轮迁移范围内已完成核心能力迁移,构建通过,关键路径可运行,结论为“符合预期”。
该库已完成主体迁移并可构建,但仍存在功能缺口(见 B 类差异清单),结论为“部分符合预期”,建议按优先级补齐。
该库当前仍存在阻塞型差异或构建错误,尚不满足验收标准,结论为“不符合预期”。