2.6 KiB
2.6 KiB
移动攻击高亮字典 Key 缺失
- 分类:blocking
- Issue 数:1
0.7.2b最近一天次数:2- 设备数合计:1
- 报告生成:2026-06-01 16:49:36
Issue
| Issue | 类型 | 次数 | 设备 | 最近上报 | 消息 |
|---|---|---|---|---|---|
| 0bbff28f08b867749349762f2e47eac2 | KeyNotFoundException | 2 | 1 | 2026-06-01 15:53:26 | The given key '1986' was not present in the dictionary. |
解码结论
- 解码栈定位到
TH1Renderer.MapRenderer.SetUnitAllMoveAttackTargetHighlight(uint uid),从MapInteraction.OnTileClicked的选择单位路径进入。 - Key
1986缺失说明移动/攻击高亮计算时,逻辑MapData或渲染字典中已经没有该单位/格子的对应项。 - 该样本没有可用 device 上下文;根因仍是不完整判断,但直接风险点是
SetUnitAllMoveAttackTargetHighlight未对GetUnitDataByUnitId、GetGridDataByUnitId、ROUnitMap/ROGridMap查找失败做退出。 - 建议高亮前重新确认单位仍在当前地图且渲染对象存在,失败时清理选择态并跳过高亮。
设备上下文
0bbff28f08b867749349762f2e47eac2
- 样本 CrashId:
02e7f4ce7a464d528ecddbbb9e25c740 - 样本 DeviceId:
58-11-22-3d-24-32 - CrashSight 附带日志文件:
False
该样本未能从 API 取得可用 device 上下文,根因判断保持不完整。
代码位置
Unity/Assets/Scripts\TH1_Renderer\MapRenderer.cs:577: public bool SetUnitAllMoveAttackTargetHighlight(uint uid) //渲染所有可移动位置的高亮,其中可以攻击的位置要标红,如果是自己人或者敌人在移动范围内但是不在攻击范围内,则不能高亮Unity/Assets/Scripts\TH1_Logic\Map\MapInteraction.cs:269: MapRenderer.Instance.SetUnitAllMoveAttackTargetHighlight(unitData.Id);Unity/Assets/Scripts\TH1_Logic\Skill\AllSkill\InfiltrateSkill.cs:140: // 依赖 CalcUnitMoveInfo 已对 self 计算过(玩家点击路径由 SetUnitAllMoveAttackTargetHighlight 保证;
判断
这是阻断类,因为 CrashSight 行或 LogError 包装内容中存在真实异常类型、异常对象或调用栈;不是单纯业务状态诊断。
本批样本 hasLogFile=false,API 能拿到的是最终上报内容和同设备 ERROR 上报序列,不包含完整 Unity 运行日志;根因上下文按可见上报链路记录。
建议
优先按次数最高的 Issue 样本复现并修复;若同设备上报序列中出现更早的异常,应以更早异常作为源头处理。