181 lines
6.1 KiB
Markdown
181 lines
6.1 KiB
Markdown
# FlowScope P2 第一阶段完成报告
|
||
|
||
日期:2026-06-04
|
||
|
||
## 范围
|
||
|
||
本阶段根据 `docs/requirements/p2-package-editor-requirements.md` 执行第一轮 P2 准备工作。范围限定为:
|
||
|
||
- 锁定 P0/P1 当前基线。
|
||
- 建立 package 目标结构与迁移边界文档。
|
||
- 编写安装与最小接入文档。
|
||
- 补 Addressables 真实验收入口。
|
||
- 添加最小 Editor 诊断入口。
|
||
- 整理 MainMenuP0 样例说明。
|
||
|
||
本阶段没有重写 P0/P1 Runtime 生命周期,没有搬迁 `Assets/FlowScope`,没有创建正式 package 根目录。Addressables 项目设置由用户准备测试资源时生成,本轮仅接入测试、修复 backend 失败诊断并记录验收结果。
|
||
|
||
## 已完成
|
||
|
||
### 1. 基线审查
|
||
|
||
新增:
|
||
|
||
- `docs/reviews/p2-phase1-baseline-audit.md`
|
||
|
||
内容包括:
|
||
|
||
- 当前分支与工作树状态。
|
||
- P0/P1 Runtime、Addressables、Samples、Tests 的现状。
|
||
- Package / Editor 缺口。
|
||
- Addressables 真实验收缺口。
|
||
- P2 第一阶段并行任务边界。
|
||
- 第一阶段完成 Gate 和下一阶段方向。
|
||
|
||
### 2. Package 结构与安装文档
|
||
|
||
新增:
|
||
|
||
- `docs/guides/flowscope-package-layout.md`
|
||
- `docs/guides/flowscope-installation.md`
|
||
|
||
已覆盖:
|
||
|
||
- 目标 package 结构:`package.json`、`Runtime`、`Addressables`、`Editor`、`Samples~`、`Tests`、`Documentation~`。
|
||
- 第一阶段暂不搬迁 `Assets/FlowScope` 的原因。
|
||
- asmdef 依赖方向和禁止反向依赖。
|
||
- 本地 package path、Git URL、项目内 Assets 开发模式。
|
||
- 基于当前真实 API 的最小 Bootstrap 示例。
|
||
- 常见误用与当前限制。
|
||
|
||
### 3. Addressables 验收入口
|
||
|
||
新增:
|
||
|
||
- `docs/reviews/addressables-integration-acceptance.md`
|
||
|
||
结论:
|
||
|
||
- 当前项目有 `com.unity.addressables` 和 `FlowScope.Addressables` asmdef。
|
||
- 当前项目已有 `Assets/AddressableAssetsData`、默认 Addressables settings、`Default Local Group` 和可复用测试 key。
|
||
- 已新增真实 PlayMode 自动化验收,覆盖真实 `TextAsset` 加载、释放、缺失 key 诊断和类型不匹配诊断。
|
||
|
||
剩余缺口:
|
||
|
||
- 当前 Addressables 测试资源路径为 `Assets/FlowScope/Tests/PlayMode/Resources_moved/Fixtures/Addressables/FlowScopeAddressablesText.txt`,后续 package 迁移时应统一测试资源目录命名。
|
||
- `Assets/FlowScope/Tests/PlayMode/Resources/Fixtures` 当前只剩空目录 meta,属于提交前清理候选。
|
||
|
||
### 4. Editor 最小诊断入口
|
||
|
||
新增:
|
||
|
||
- `My project/Assets/FlowScope/Editor.meta`
|
||
- `My project/Assets/FlowScope/Editor/FlowScope.Editor.asmdef`
|
||
- `My project/Assets/FlowScope/Editor/FlowScope.Editor.asmdef.meta`
|
||
- `My project/Assets/FlowScope/Editor/FlowScopeDiagnosticsWindow.cs`
|
||
- `My project/Assets/FlowScope/Editor/FlowScopeDiagnosticsWindow.cs.meta`
|
||
|
||
能力:
|
||
|
||
- 菜单入口:`Tools/FlowScope/Diagnostics`。
|
||
- 只读检查,不自动生成、移动、删除或修复用户资源。
|
||
- 检查 `com.unity.addressables` package、Runtime asmdef、Addressables asmdef、MainMenuP0 scene、MainMenuPanel prefab。
|
||
- Addressables package 状态通过 `UnityEditor.PackageManager.Client.List(true)` 异步刷新,不阻塞 Editor。
|
||
|
||
### 5. MainMenuP0 样例说明
|
||
|
||
新增:
|
||
|
||
- `My project/Assets/FlowScope/Samples/MainMenuP0/README.md`
|
||
- `My project/Assets/FlowScope/Samples/MainMenuP0/README.md.meta`
|
||
|
||
内容包括:
|
||
|
||
- 样例目的。
|
||
- 当前仍保留在 `Assets/FlowScope/Samples/MainMenuP0` 的原因。
|
||
- 后续迁移到 `Samples~/MainMenuP0` 的候选路径。
|
||
- 运行方式、验收点、自动化测试位置和已知限制。
|
||
|
||
## 验证结果
|
||
|
||
### Unity batchmode 导入 / 编译
|
||
|
||
已执行:
|
||
|
||
```powershell
|
||
& 'C:\Program Files\Unity\Hub\Editor\2022.3.62f2c1\Editor\Unity.exe' -batchmode -quit -projectPath 'C:\Users\13999\Documents\FlowScope\My project' -logFile 'C:\tmp\flowscope-p2-phase1-editor-compile.log'
|
||
```
|
||
|
||
结果:
|
||
|
||
- Unity 导入新增 Editor 文件。
|
||
- 生成 `My project\FlowScope.Editor.csproj`。
|
||
- 日志中未发现 `error CS`、`Compilation failed` 或 `Scripts have compiler errors`。
|
||
|
||
### generated csproj build
|
||
|
||
已执行:
|
||
|
||
```powershell
|
||
dotnet build "My project\FlowScope.Editor.csproj" --no-restore
|
||
dotnet build "My project\FlowScope.Runtime.csproj" --no-restore
|
||
dotnet build "My project\FlowScope.Tests.EditMode.csproj" --no-restore
|
||
dotnet build "My project\FlowScope.Tests.PlayMode.csproj" --no-restore
|
||
```
|
||
|
||
结果:
|
||
|
||
- `FlowScope.Editor.csproj`:0 error。
|
||
- `FlowScope.Runtime.csproj`:0 error。
|
||
- `FlowScope.Tests.EditMode.csproj`:0 error。
|
||
- `FlowScope.Tests.PlayMode.csproj`:0 error。
|
||
- 仍有 Unity generated csproj 既有引用冲突 warning,主要涉及 `System.Net.Http`、`System.Security.Cryptography.Algorithms`、`System.ComponentModel.Annotations`、`System.Threading.Tasks.Extensions`。
|
||
|
||
### Unity Test Runner
|
||
|
||
已执行:
|
||
|
||
- 全量 EditMode。
|
||
- 全量 PlayMode。
|
||
|
||
结果:
|
||
|
||
- 用户反馈全量 EditMode / PlayMode 全绿。
|
||
- `AddressablesResourceBackendTests` 已覆盖真实 Addressables key:`FlowScope.Tests.Addressables.Text`。
|
||
- 缺失 key 和类型不匹配路径已通过可捕获 backend 诊断异常验收。
|
||
|
||
### 静态检查
|
||
|
||
已执行:
|
||
|
||
```powershell
|
||
rg -n "<占位词扫描表达式>" <本阶段新增文档与 Editor 脚本>
|
||
git diff --check
|
||
```
|
||
|
||
结果:
|
||
|
||
- 未发现占位词命中。
|
||
- `git diff --check` 无 whitespace error。
|
||
|
||
## 未完成 Gate
|
||
|
||
以下事项不在本阶段内完成,但必须在 P2 后续阶段继续追踪:
|
||
|
||
1. 尚未创建正式 package 根目录和 `package.json` 文件。
|
||
2. 尚未在干净 Unity 项目中验证本地 package path 或 Git URL 安装。
|
||
3. 尚未实际打开 `Tools/FlowScope/Diagnostics` 做人工 UI 检查。
|
||
4. Addressables 测试资源目录命名仍需在 package 迁移前统一。
|
||
|
||
## 下一阶段建议
|
||
|
||
进入 P2 第二阶段:本地 package 试迁移。
|
||
|
||
建议顺序:
|
||
|
||
1. 创建 `Packages/com.flowscope.gamecore` 和最小 `package.json`。
|
||
2. 先复制或镜像 Runtime 到 package 目录,不删除 `Assets/FlowScope`。
|
||
3. 在当前项目和一个干净 Unity 项目中验证本地 package path。
|
||
4. 整理 Addressables 测试资源目录,再迁移 package 内 Tests。
|
||
5. 再考虑 `Samples~/MainMenuP0` 和 Tests 的分批迁移。
|