50 lines
3.0 KiB
Markdown
50 lines
3.0 KiB
Markdown
# FlowScope Game Core P1 完成报告
|
||
|
||
## 范围
|
||
|
||
本轮执行 `docs/superpowers/plans/2026-05-20-p1-production-hardening-plan.md` 中的 P1 生产化硬化任务,范围包括资源后端拆分、配置与存档扩展点、UI 导航与预加载、MainMenuP0 样例升级,以及使用规范和完成报告。
|
||
|
||
## 已完成
|
||
|
||
- 定义 P1 契约:`IResourceBackend`、`IConfigSource`、`IConfigParser`、`ISaveMigration`、`IUIScreenNavigator`、`IUIPreloadService`。
|
||
- 资源系统拆分:核心 `ResourceService` 保持在 Runtime,Addressables 适配移动到 `FlowScope.Addressables` 独立 asmdef。
|
||
- 配置扩展:`JsonConfigProvider` 支持 source/parser,新增 `InMemoryConfigSource`、`FileConfigSource`、`JsonConfigParser`。
|
||
- 存档迁移:`JsonSaveSerializer` 支持版本 envelope,`SaveMigrationRegistry` 支持连续迁移链。
|
||
- UI 扩展:新增 `UIPreloadService` 和 `UIScreenNavigator`,`UIManager` 支持复用预加载 panel handle。
|
||
- MainMenuP0 样例:改为 P1 装配方式,测试覆盖启动可见、点击即时更新、关闭保存、重启恢复、资源释放。
|
||
- 文档:新增运行时使用规范和 MainMenuP0 P1 样例验收说明。
|
||
|
||
## 测试结果
|
||
|
||
- `dotnet build "My project\FlowScope.Runtime.csproj" --no-restore`:通过,0 错误;存在 Unity 生成项目的引用版本冲突警告。
|
||
- `dotnet build "My project\FlowScope.Tests.EditMode.csproj" --no-restore`:通过,0 错误;存在相同引用警告。
|
||
- `dotnet build "My project\FlowScope.Tests.PlayMode.csproj" --no-restore`:通过,0 错误;存在相同引用警告。旧的 Addressables 包解析阻塞已解除。
|
||
- 2026-05-21 P2 前整改补充:Container 已区分 `RegisterSingletonFactory` / `RegisterScoped` / `RegisterTransient`,Feature 示例改为 transient 注册,ResourceService 与 UIPreloadService 增加共享加载/并发预加载边界测试。
|
||
|
||
## 人工验收
|
||
|
||
代码级编译验收已恢复。Unity Test Runner 和 MainMenuP0 场景人工验收仍需在 Unity 工程可用时补跑,不能仅用 `dotnet build` 替代。
|
||
|
||
需要重新执行:
|
||
|
||
- PlayMode: `FlowScope.Tests.PlayMode.Samples.MainMenuP0Tests`。
|
||
- PlayMode 全量测试。
|
||
- 打开 `My project/Assets/FlowScope/Samples/MainMenuP0/Scenes/MainMenuP0.unity` 做人工点击、保存恢复、资源释放验收。
|
||
|
||
## 未进入本轮
|
||
|
||
- Luban 完整接入。
|
||
- YooAsset / AssetBundle 后端。
|
||
- 云存档。
|
||
- AudioMixer / 3D 音频。
|
||
- Package 分发和编辑器工具链。
|
||
- 完整 UI 路由系统。
|
||
|
||
## P2 建议
|
||
|
||
- 补一次 Unity Test Runner 验收记录,确认 EditMode / PlayMode 在 Unity 内全绿。
|
||
- 继续跟踪 AudioService 同步 API 的使用边界:同步方法只适合读取已预加载/已完成资源,新增业务应优先使用 async API。
|
||
- 为 Runtime/package 分发建立 asmdef、Samples、Tests 的包结构规范。
|
||
- 为 Config/Save 引入更成熟 JSON 库或明确长期 DTO 限制。
|
||
- 增加 AOT/linker 验证,避免反射和 JSON 构造在移动端出现隐性问题。
|