6.0 KiB
6.0 KiB
早苗治疗技能空引用
- 分类:blocking
- Issue 数:1
0.7.3d最近一天次数:2- 设备数合计:2
- 报告生成:2026-06-08 12:00:23
Issue
| Issue | 类型 | 次数 | 设备 | 最近上报 | 消息 |
|---|---|---|---|---|---|
| d1fc636405540ae6f8e208b96c02b620 | UnityLogError | 2 | 2 | 2026-06-08 09:02:53 | Timer任务执行异常: 错误信息: SANAEDIVINE - SANAENINE 异常类型: System.NullReferenceException 异常信息: Object reference not set to an instance of an object. 调用堆栈: at bsr.guy () [0x00000] in <00000000000000000000000000000000>:0 at bsr.guz () [0x00000] in <00000000000000000000000000000000>:0 at edc.ial (cfo a, bsr b, bsr c, Logic.Skill.SanaeDivineType d) [0x00000] in <00000000… |
设备上下文
d1fc636405540ae6f8e208b96c02b620
- 样本 CrashId:
6c4845ff9ea141039942e32df5c3cc2d - 样本 DeviceId:
b4-2e-99-cc-22-b5 - CrashSight 附带日志文件:
False
最终上报内容:
UnityLogError
Timer任务执行异常:
错误信息: SANAEDIVINE - SANAENINE
异常类型: System.NullReferenceException
异常信息: Object reference not set to an instance of an object.
调用堆栈: at bsr.guy () [0x00000] in <00000000000000000000000000000000>:0
at bsr.guz () [0x00000] in <00000000000000000000000000000000>:0
at edc.ial (cfo a, bsr b, bsr c, Logic.Skill.SanaeDivineType d) [0x00000] in <00000000000000000000000000000000>:0
at edc+cqj.iai () [0x00000] in <00000000000000000000000000000000>:0
at i.oj () [0x00000] in <00000000000000000000000000000000>:0
at TH1_Logic.Core.Main.Update () [0x00000] in <00000000000000000000000000000000>:0
目标对象: edc
UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
i.oj()
TH1_Logic.Core.Main.Update()
UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
i.oj()
TH1_Logic.Core.Main.Update()
UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
i.oj()
TH1_Logic.Core.Main.Update()
UnityLogError
Timer任务执行异常:
错误信息: SANAEDIVINE - SANAENINE
异常类型: System.NullReferenceException
异常信息: Object reference not set to an instance of an object.
调用堆栈: at bsr.guy () [0x00000] in <00000000000000000000000000000000>:0
at bsr.guz () [0x00000] in <00000000000000000000000000000000>:0
at edc.ial (cfo a, bsr b, bsr c, Logic.Skill.SanaeDivineType d) [0x00000] in <00000000000000000000000000000000>:0
at edc+cqj.iai () [0x00000] in <00000000000000000000000000000000>:0
at i.oj () [0x00000] in <00000000000000000000000000000000>:0
at TH1_Logic.Core.Main.Update () [0x00000] in <00000000000000000000000000000000>:0
目标对象: edc
UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
i.oj()
TH1_Logic.Core.Main.Update()
同设备最近 ERROR 上报序列:
| 时间 | Issue | 类型 | 消息 |
|---|---|---|---|
| 2026-06-08 11:54:36 | 13021b124af1bc7fdcc5bb8e1aa1671a | ||
| 2026-06-08 09:02:53 | d1fc636405540ae6f8e208b96c02b620 | ||
| 2026-06-08 08:55:15 | 4b42e043c64194e31205b4fa1a9b4d2d | ||
| 2026-06-08 08:44:26 | 7f4b5f2120392523233850a9617b09ea | ||
| 2026-06-08 01:37:02 | 83c5b5b46447ac4e50101f1148f4ab70 | ||
| 2026-06-08 01:01:11 | 13f609ef7cac4bbf2cbfecbe708524c3 | ||
| 2026-06-08 00:45:15 | bb81bce180d8672f500aa9f2021ec9f8 | ||
| 2026-06-08 00:30:11 | 10d4df507992c1a66a90693df20b21c3 |
代码位置
Unity/Assets/Scripts\TH1_Logic\Skill\AllSkill\SanaeDivineSkill.cs:82: timer.TimerRegister(this, playOmikuji,1.1f * i,"SANAEDIVINE - SANAENINE - OnHeal");
解码结论
此 Issue 是 SanaeDivineSkill 的计时器回调中真实空引用。解码后的异常栈为:
Timer.Update()执行SANAEDIVINE - SANAENINE回调。Logic.Skill.SanaeDivineSkill/<>c__DisplayClass7_1.<OnDamageOther>b__0()调用SanaeDivineSkill.OmikujiAnim(mapData, originGrid, liveTargetGrid, divine)。SanaeDivineSkill.OmikujiAnim()内部执行origin.InMainSight() || target.InMainSight()。RuntimeData.GridData.InMainSight()调用RuntimeData.GridData.IsMainMap(),最终空引用在GridData.IsMainMap()。
代码定位:
Unity/Assets/Scripts/TH1_Logic/Skill/AllSkill/SanaeDivineSkill.cs:176注册SANAEDIVINE - SANAENINE延迟回调。Unity/Assets/Scripts/TH1_Logic/Skill/AllSkill/SanaeDivineSkill.cs:235的OmikujiAnim()虽然检查了参数非空,但238调用的是GridData.InMainSight(),该方法依赖全局Main.MapData。Unity/Assets/Scripts/TH1_Data/GridData.cs:513的IsMainMap()直接访问Main.MapData.GridMap,当计时器回调晚于地图切换/退出/重建,或当前主图不是传入mapData时,可能空引用或误判。
合并依据:CrashSight 明确包含 System.NullReferenceException、目标对象 Logic.Skill.SanaeDivineSkill,两次发生在 2 台设备;同设备近期还有相似 action/AI 诊断,但本条阻断的栈已经完整指向早苗技能动画回调,不能归并到那些普通诊断。
建议聚焦:SanaeDivineSkill 的延迟视觉回调用捕获的 mapData 做主图/视野判断,或在执行前确认 mapData == Main.MapData && Main.MapData?.GridMap != null。更稳的是给 GridData.InMainSight() 的调用点增加可传入 map 的安全版本,避免延迟技能表现访问已失效的全局主图。这个根因还可能导致早苗三连神签的投射物/VFX缺失、治疗/伤害后的表现中断,以及 Timer 捕获异常后继续堆积后续视觉任务。
判断
这是阻断类,因为 CrashSight 行或 LogError 包装内容中存在真实异常类型、异常对象或调用栈;不是单纯业务状态诊断。
本批样本 hasLogFile=false,API 能拿到的是最终上报内容和同设备 ERROR 上报序列,不包含完整 Unity 运行日志;根因上下文按可见上报链路记录。
建议
优先按次数最高的 Issue 样本复现并修复;若同设备上报序列中出现更早的异常,应以更早异常作为源头处理。