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:
@@ -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. 探索进度 UI(API 已有,缺渲染层)
|
||||
2. RegionSO(区域配色/名称集中管理)
|
||||
3. 手柄/触屏缩放与平移
|
||||
4. `Docs/Standards/MapDesignSpec.md` 策划工作流文档
|
||||
|
||||
这些是真正意义的"扩展"而非"修补",可在独立任务中推进。
|
||||
|
||||
Reference in New Issue
Block a user