41 lines
3.5 KiB
Markdown
41 lines
3.5 KiB
Markdown
# 阶段4C2奖励面板点击穿透修复裁决与实施记录
|
||
|
||
2026-09-24。主会话:接手会话。独立审查:《阶段4C2奖励面板点击穿透修复方案独立审查-2026-09-24.md》(8/8 hash一致);方案:《阶段4C2奖励面板点击穿透最小修复方案-待评审-2026-09-24.md》。
|
||
|
||
## 一、hash复核与逐条裁决
|
||
|
||
主会话独立复算 `panel-raycast-fix-review-hashes.json` 8/8一致。裁决:
|
||
|
||
| 项 | 裁决 |
|
||
|---|---|
|
||
| P1:`playButton.onClick.AddListener(OnClickInHome)`(:292)位于Start()的`if(!Enabled)`守卫块内,KV模式监听未注册;prefab无持久化onClick,OnClickInHome全库唯一绑定在此——只修点击穿透则按钮仍零订阅 | **接受,采纳"扩展修复使KV模式监听注册"**:将`playButton.onClick.AddListener(OnClickInHome);`一行移出`#if`守卫(两种模式都注册、各一次;PF模式行为不变)。targetBtn等其余监听维持守卫内(当前范围普通鱼成功路径不需要;如后续范围扩展另评)。 |
|
||
| 三属性恢复(alpha/blocksRaycasts/interactable)正确、幂等、零回归 | 接受 |
|
||
| P3-1:interactableChildren非CanvasGroup成员;ignoreParentGroups经prefab核对无需恢复 | 接受(方案问项笔误,正确集为三属性) |
|
||
| P3-2:shim默认false仅隐式建模:167初始化、pending断言不捕获初始化层回归 | 接受,作为已知边界记录 |
|
||
| P3-3:验收hash锚点补controller侧两文件;文件名表述更正 | 接受:以panel-raycast清单中KVFishingReward.cs/Validation.cs条目+fix-final-hashes.json为准 |
|
||
| P3-4:交互属性探测值建议留机器事件 | 接受为后续候选(本次探测值已在记录MD与本次裁决中留证) |
|
||
|
||
## 二、实施(红绿流程)
|
||
|
||
1. **红**:PanelSlice镜像当前生产(StartTail守卫内置监听+仅alpha回调)+PanelTests新增断言(确认后blocksRaycasts/interactable恢复、KV监听注册并可与PF模式对照)→ `FAIL ... raycasts=False, kvListener=False, pfListener=True`(diagnostic-impl/panel-fix-red.log)。
|
||
2. **生产改动(仅2处,FishingRewardPanel.cs字节级)**:
|
||
- :31 展示回调 → `()=>{canvasGroup.alpha=1;canvasGroup.blocksRaycasts=true;canvasGroup.interactable=true;}`;
|
||
- `playButton.onClick.AddListener(OnClickInHome);` 移出`#if UNITY_EDITOR && !SERVICE_HOST`守卫(守卫块LF行尾、绑定行CRLF,均原样保留)。
|
||
- :167初始化(确认前alpha=0且不可点)不变;OnDisable钩子、分段保存、ConfirmRewardAsync、kvPresentation不动。
|
||
3. **切片同步镜像**后 `PASS presentation restores interaction; KV listener registered; raycasts=True, kvListener=True, pfListener=True`(panel-fix-green.log)。
|
||
|
||
## 三、验收(全部基于最终字节)
|
||
|
||
| 门 | 结果 |
|
||
|---|---|
|
||
| PanelTests红绿 | 红(修复前切片镜像现状)/绿(修复后)均落盘 |
|
||
| 固定验证 | success=true,45组171断言(含controller-cancel修复的两组),无回归 |
|
||
| Editor编译 | 0错误(panel-fix-compile.json) |
|
||
| SERVICE_HOST | exit0(panel-fix-service-host.log) |
|
||
| 生产diff | 仅上述两处:三属性回调×1、监听移出守卫×1;初始化/其余字节不变 |
|
||
| 最终hash | FishingRewardPanel.cs `3C39458B…B0D9`(59049字节;基线5289088D/58984) |
|
||
|
||
## 四、边界
|
||
|
||
本修复使"收下"按钮在KV模式可点且有订阅;真实点击→返回主页→新进程恢复的闭环留待下一次用户授权运行验证。4C2/完整4C/G4未关闭。run 29520奖励数据已服务器确认落库,不重放。
|