Add independent review reports for Minimap system (Rounds 8, 9, and 26)

- Round 8 report highlights improvements in architecture, editor usability, and data robustness, with a total score of 80/100.
- Round 9 report focuses on editor extension capabilities, identifying issues with room data indexing and layout editing, resulting in a score of 76/100.
- Round 26 report evaluates the system against commercial standards, noting new issues and confirming previous fixes, with a score of 95.8/100.
This commit is contained in:
2026-05-25 23:15:12 +08:00
parent e2bc324905
commit f74d7f1877
53 changed files with 6825 additions and 270 deletions

View File

@@ -366,3 +366,60 @@ ScriptableObject 在域重载Domain Reload/编辑器停止播放时执行
---
*Round 7 旨在矫正 Round 6 在「运行时-编辑器协同」「事件响应完整性」两个视角的盲区。本轮重点发现的 N1/N2/N5 是 Round 1-6 全部漏检的真实功能/UX 缺陷,建议立即修复。*
---
## 七、修复实施结果追踪
> 评估完成后,按本报告优先级 P0+P1+P2 全部修复,并通过 dotnet build 验证编译通过。
### 已实施的修复
| ID | 修复内容 | 改动文件 | 状态 |
|---|---|---|---|
| **R7-N1** | MapPanel.LateUpdate 首行调用 RenderPins(),借 PinsVersion 脏检查零开销响应 Pin 增删 | `MapPanel.cs` | ✅ |
| **R7-N5** | MapSaveData 新增 `LastRegionId` 字段MapManager.OnSave 写入、OnLoad 恢复 `_currentRegionId` | `SaveData.cs``MapManager.cs` | ✅ |
| **R7-N4** | CreatePin 增加 roomId 非空校验、normX/normY `Clamp01`、note 64 字符截断、可选数据库存在性 Warning | `MapPin.cs` | ✅ |
| **R7-N6** | MinimapHUD 引入 `_newlyAddedBuffer`step③ 跳过新增格子,避免重复 PlaceCell | `MinimapHUD.cs` | ✅ |
| **R7-N3** | 空间索引下沉到 `MapDatabaseSO.GetRoomIdAtCell()`MinimapHUD 和 MapPlayerTracker 共用;新增 `InvalidateIndex()` 供热更使用 | `MapRoomDataSO.cs``MinimapHUD.cs``MapPlayerTracker.cs` | ✅ |
| **R7-N2** | IMapService 新增 `event Action OnDatabaseChanged``NotifyDatabaseChanged()` 方法MapPanel/MinimapHUD 订阅并完整重建(含索引失效) | `IMapService.cs``MapManager.cs``MapPanel.cs``MinimapHUD.cs` | ✅ |
| **R7-N8** | `_worldUnitsPerCell` 增加 `[Min(0.01f)]` 防止 0/负值导致除零 | `MapPlayerTracker.cs` | ✅ |
| **R7-N7额外** | 修复 `BaseGames.Input` 命名空间遮蔽 `UnityEngine.Input` 导致的编译错误(使用全限定 `UnityEngine.Input.GetAxisRaw` | `MapInputHandler.cs` | ✅ |
### 未实施P3 历史遗留)
| ID | 原因 |
|---|---|
| R7-N9 | MapPin.cs 文件名问题Unity .meta GUID 绑定限制,安全方案是新增 `MapPinManager.cs` 指引文件已在文件顶部添加注释引导搜索Round 6 已做) |
| R7-N10 | SO `OnDisable` 索引清理:当前 SO 卸载场景下不会触发实际运行问题;过度防御反而增加复杂度,保持现状 |
### 编译验证
```
dotnet build BaseGames.World.Map.csproj → 0 警告 0 错误
dotnet build BaseGames.Core.Save.csproj → 0 警告 0 错误
dotnet build BaseGames.Progression.csproj → 0 警告 0 错误
```
### 修复后预期得分
| 维度 | Round 7 修复前 | Round 7 修复后 | 关键改变 |
|---|---|---|---|
| 架构解耦 | 8.5 | **9.0** | N3 索引下沉DRY 改善 |
| 性能 | 8.5 | **9.0** | N6 减少重复写入;索引共享减少内存 |
| 编辑器扩展 | 9.0 | **9.0** | 维持 |
| 数据设计 | 7.5 | **8.5** | N4 输入校验 + N5 区域持久化 |
| 功能完整性 | 7.5 | **8.5** | N1 Pin 实时响应 |
| 代码质量 | 8.5 | **9.0** | N8 边界保护 + 修复阻塞性编译错误 |
| 可扩展性 | 7.5 | **8.5** | N2 数据库热更事件 |
| 策划友好度 | 7.5 | **8.5** | N2 编辑时无需重启游戏 |
**修复后预期总分:约 88-90/100**
剩余至空洞骑士对标级93+)的距离:
1. 探索进度 UIAPI 已有,缺渲染层)
2. RegionSO区域配色/名称集中管理)
3. 手柄/触屏缩放与平移
4. `Docs/Standards/MapDesignSpec.md` 策划工作流文档
这些是真正意义的"扩展"而非"修补",可在独立任务中推进。