3.5 KiB
3.5 KiB
阶段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与本次裁决中留证) |
二、实施(红绿流程)
- 红:PanelSlice镜像当前生产(StartTail守卫内置监听+仅alpha回调)+PanelTests新增断言(确认后blocksRaycasts/interactable恢复、KV监听注册并可与PF模式对照)→
FAIL ... raycasts=False, kvListener=False, pfListener=True(diagnostic-impl/panel-fix-red.log)。 - 生产改动(仅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不动。
- :31 展示回调 →
- 切片同步镜像后
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奖励数据已服务器确认落库,不重放。