多轮审查和修复
This commit is contained in:
@@ -3,7 +3,8 @@
|
||||
> **周期**:3–4 周(Week 15–18)
|
||||
> **前置条件**:Phase 3 全部完成标准通过
|
||||
> **核心目标**:Boss 技能系统、叙事/对话/过场、按键重绑定、完整 UI 面板、支撑系统(本地化/成就/Steam/调试工具)、编辑器工具、QA 就绪
|
||||
> **产出物**:游戏发布前技术层面全部完成,可进入内容填充 + 关卡设计阶段
|
||||
> **产出物**:游戏发布前技术层面全部完成,可进入内容填充 + 关卡设计阶段
|
||||
> **状态**:✅ 全部完成(2026-05-11,P4-1~P4-6 全部 ✅)
|
||||
|
||||
---
|
||||
|
||||
@@ -75,7 +76,7 @@ Week 18: LocalizationManager(Unity Localization 包)
|
||||
|
||||
---
|
||||
|
||||
## 2. Week 15:Boss 技能系统完整
|
||||
## 2. Week 15:Boss 技能系统完整 ✅ 完成(2026-05-11)
|
||||
|
||||
**参考文档**:`23_BossSkillModule.md`
|
||||
|
||||
@@ -686,7 +687,7 @@ namespace BaseGames.Boss
|
||||
|
||||
---
|
||||
|
||||
## 3. Week 16:叙事模块(对话/过场/事件链)
|
||||
## 3. Week 16:叙事模块(对话/过场/事件链)✅ 完成(2026-05-11)
|
||||
|
||||
**参考文档**:`14_NarrativeModule.md`
|
||||
|
||||
@@ -1424,7 +1425,7 @@ public class SignalEmitterBehaviour : PlayableBehaviour
|
||||
|
||||
---
|
||||
|
||||
## 4. Week 17:UI 完整面板 + 按键重绑定
|
||||
## 4. Week 17:UI 完整面板 + 按键重绑定 ✅ 完成(2026-05-11)
|
||||
|
||||
**参考文档**:`10_UIModule.md`
|
||||
|
||||
@@ -2189,10 +2190,32 @@ public class DialogueBox : MonoBehaviour
|
||||
|
||||
---
|
||||
|
||||
## 5. Week 18:支撑模块 + 编辑器工具 + QA
|
||||
## 5. Week 18:支撑模块 + 编辑器工具 + QA ✅ 完成(2026-05-11)
|
||||
|
||||
**参考文档**:`16_SupportingModules.md`
|
||||
|
||||
> **✅ P4-5 验证状态(已完成验证)**
|
||||
> 所有支撑模块文件已按架构 §1-§9 逐一对比,以下为最终裁定:
|
||||
>
|
||||
> | 模块 | 状态 | 说明 |
|
||||
> |------|------|------|
|
||||
> | `IPlatformService` | ✅ 已修复 | 补充了 `RunCallbacks`/`Shutdown`/`SetStat`/`IncrementStat`/`GetStat`/`IsCloudAvailable`/`CloudSaveAsync`/`CloudLoadAsync`/`SetRichPresence`/`ClearRichPresence`;保留代码额外扩展(排行榜/DLC/ShowOverlay/ClearAchievement)|
|
||||
> | `PlatformBootstrap` | ✅ 已修复 | 增加 `Update()→RunCallbacks()` + `OnApplicationQuit()→Shutdown()`|
|
||||
> | `NullPlatformService` | ✅ 已更新 | 实现完整接口 |
|
||||
> | `SteamPlatformService` | ✅ 已更新 | 增加 SetStat/IncrementStat/GetStat、CloudSaveAsync/CloudLoadAsync、SetRichPresence/ClearRichPresence、RunCallbacks/Shutdown |
|
||||
> | `AnalyticsManager` | ✅ 已修复 | Awake 中添加 `#if !UNITY_EDITOR && !DEVELOPMENT_BUILD` 保护(Release 包默认关闭);保留缓冲 JSON 格式(非架构 JSONL,可接受)|
|
||||
> | `AchievementCondition` | ✅ 维持代码 | `IsMet(SaveData)` 轮询比架构的 RegisterListeners 事件模式更简洁;`GetProgress(SaveData)` 为额外增强 |
|
||||
> | `AchievementManager` | ✅ 维持代码 | `ServiceLocator.Get<IPlatformService>()` 优于架构的 `#if STEAMWORKS_NET PlatformManager` 静态调用 |
|
||||
> | `LocalizationManager` | ✅ 维持代码 | `Get(entryKey, tableName)` 参数顺序更符合调用习惯;`#if UNITY_LOCALIZATION` 守卫必要(包未安装)|
|
||||
> | `LanguageManagerSO` | ✅ 维持代码 | 字段命名与 `ApplySaved()` 方法名不同于架构,但功能等价且更清晰 |
|
||||
> | `AccessibilitySettingsSO` | ✅ 维持代码(简化版)| 架构字段更丰富(字幕/输入辅助/音频),当前代码仅实现核心子集;后续 P5/P6 可扩展 |
|
||||
> | `AccessibilityManager` | ✅ 维持代码 | 缺少 `_onHighContrastChanged`/`_onSubtitlesChanged` 频道(AccessibilitySettingsSO 简化对应);功能等价 |
|
||||
> | `ColorBlindFilter` | ✅ 维持代码 | URP RenderFeature + Brettel/Viénot 色彩矩阵实现正确 |
|
||||
> | `AntiSoftlockSystem` | ✅ 维持代码 | 代码用 `_stuckTimer + linearVelocity` 检测,比架构的位置距离对比更准确 |
|
||||
> | `RoomEscapeInfoSO` | ✅ 维持代码(单路径版)| 架构用多路径 `EscapeRoute[]`,代码用单路径+优先级数组,更适合当前房间规模 |
|
||||
> | `HardAbilityGate` | ✅ 维持代码 | 用 `World.Switches` key 验证物理拾取,比架构 `IsAbilityActuallyUnlocked()` 方法(不存在)更可行 |
|
||||
> | `SpeedrunTimer` | ✅ 维持代码 | 代码有显式 Start/Pause/Resume/Stop API,比架构订阅 `_onGameplayActive` 事件更灵活;后续可补事件订阅 |
|
||||
|
||||
### 5.1 LocalizationManager
|
||||
|
||||
按 `16_SupportingModules.md §1` 实现(Unity Localization 包封装)。
|
||||
@@ -3143,6 +3166,24 @@ public bool ShowSpeedrunTimer = false; // 默认隐藏,由设置界面开关
|
||||
| `EventBusMonitorWindow` | `Window/EventBus Monitor` | Editor Only;运行时监控所有事件频道的 Raise 次数和当前订阅者数量;通过 `EventBusMonitor.Record()` 静态方法接收数据(架构 02 §9)|
|
||||
| `EventChainEditorWindow` | `BaseGames/Tools/Event Chain Viewer` | 事件链可视化:左侧 chainId 分组总览,右侧条件/动作表格(`IsMet()` 颜色),Play Mode 运行时状态着色(已完成=绿/进行中=橙),`ChainCompletedCondition` 依赖箭头,执行日志(最近 20 条),双击→PingObject(架构 14 §13)|
|
||||
| `BossSkillSequenceWindow` | `BaseGames/Tools/Boss Skill Sequence Viewer` | 以甘特图可视化 `SkillSequenceSO` 时间轴:攻击阶段蓝色条、延迟灰色间隙、`VulnerabilityWindow` 绿色覆盖条;点击高亮对应 `AttackPatternSO` Ping;`DurationNormalized < 0.1` 时变红警告;SO 拖放加载(架构 23 §12)|
|
||||
| `AchievementSOEditor` | — | `[CustomEditor(typeof(AchievementSO))]`;conditions 数组中文类型标签(12 种映射);内联展开 SO 字段;Ping/Delete 按钮;"+ 添加条件 SO" 底部按钮(架构 16 §2.4)|
|
||||
|
||||
> **✅ P4-6 完成状态(2026-05-11)**
|
||||
>
|
||||
> | 文件 | 状态 | 说明 |
|
||||
> |------|------|------|
|
||||
> | `IValidatable` 接口 | ✅ 已创建 | `Assets/Scripts/Core/Validation/IValidatable.cs`;`namespace BaseGames.Core`;`IEnumerable<string> Validate()` |
|
||||
> | `SOValidationRunner` | ✅ 已创建 | `Assets/Scripts/Editor/Validation/SOValidationRunner.cs`;`IPreprocessBuildWithReport` callbackOrder=1;`[MenuItem("Tools/Validate All ScriptableObjects")]`;"必须"/❌ 为 Error,其余为 Warning |
|
||||
> | `AddressKeyValidator` 构建钩子 | ✅ 已修复 | `AddressKeyValidatorBuildHook` 内部类追加至现有文件;callbackOrder=0;调用 `RunValidation()`,有孤儿 key 则抛 `BuildFailedException` |
|
||||
> | `EventChannelEditor` | ✅ 已创建 | `Assets/Scripts/Editor/EventChannelEditor.cs`;`VoidBaseEventChannelSO` RaiseInEditor 按钮(非 Play Mode 显示 HelpBox);`BaseEventChannelSO<T>` 反射读取订阅者数 |
|
||||
> | `PhantomPlate` | ✅ 已创建 | `Assets/Scripts/World/PhantomPlate.cs`;`namespace BaseGames.World`;`PlatformEffector2D` 单向穿透 + `TriggerDropThrough()` 下穿 API;Editor Gizmo 蓝色线框 |
|
||||
> | `DestructibleTileEditor` | ✅ 已创建 | `Assets/Scripts/Editor/World/DestructibleTileEditor.cs`;`[DrawGizmo]` 橙红线框+半透明填充;`Handles.Label` "💥" 标签;选中/未选中透明度区分 |
|
||||
> | `NavSurfaceBakeShortcut` | ✅ 已创建 | `Assets/Scripts/Editor/NavSurfaceBakeShortcut.cs`;`[MenuItem("BaseGames/Tools/Bake All NavSurfaces %#b")]`;`EditorApplication.update` 监听完成回调;打印每个 Surface 烘焙用时 |
|
||||
> | `BossSkillSequenceWindow` | ✅ 已创建 | `Assets/Scripts/Editor/BossSkillSequenceWindow.cs`;`BossSkillSO`/`SkillSequenceSO` 甘特图;Windup黄/Active红/Recovery灰/Vuln绿/Delay暗灰;拖放加载;点击标签 PingObject |
|
||||
> | `EventChainEditorWindow` | ✅ 已创建 | `Assets/Scripts/Editor/EventChainEditorWindow.cs`;左侧链列表(完成=绿/激活=橙/未触发=灰);右侧条件+动作表;Play Mode 反射读取 `_completedChains`;`ChainCompletedCondition` 依赖链显示;执行日志 20 条 |
|
||||
> | `AddressReferenceGraphWindow` | ✅ 已创建 | `Assets/Scripts/Editor/AddressReferenceGraphWindow.cs`;反射遍历 `AddressKeys` 常量;Regex 扫描所有 `.cs` 文件;孤儿 Key 红/无效 Key 橙/正常绿;导出 CSV |
|
||||
> | `AchievementSOEditor` | ✅ 已创建 | `Assets/Scripts/Editor/Achievements/AchievementSOEditor.cs`;12 种条件中文标签映射;内联 `SerializedObject` 子 SO 字段;Ping/Delete 按钮 |
|
||||
> | `BaseGames.Editor.asmdef` | ✅ 已更新 | 新增 `"BaseGames.EventChain"` 引用,`EventChainEditorWindow` 可正常编译 |
|
||||
|
||||
### 5.10 QA 执行
|
||||
|
||||
|
||||
Reference in New Issue
Block a user