常见故障的排查路径
先确定发生在哪个环境,再缩小到输入、规则、表现、资源或平台。保留一个可复现序列,比同时改多处更快。
点了没有反应
先看是否产生触摸日志。没有日志,检查节点激活、UI 尺寸、Layer、监听和上层遮挡。有日志但规则拒绝,打印阶段与牌 ID;规则接受但画面不变,检查 render 和资源引用。不要先怀疑平台丢事件。
一次点击执行两遍
检查 Button 事件与节点触摸是否同时处理;onEnable 注册是否有对应 onDisable;解绑是否用了新建的箭头函数或 bind;旧场景控制器是否仍在全局监听中。
重开后新牌被盖回
检查旧延迟任务、Tween 和加载回调。重开取消任务,不能取消的操作核对局 ID。规则仍应拒绝在终态或错误阶段执行转换。
切后台后不能继续
检查暂停标志是否恢复、延迟任务是否重新安排、动画锁是否只能在自然结束时解除。打印 hide/show 次序和当时规则阶段。音频与广告回调单独看,前台恢复不是广告完成。
只有真机画面异常
记录设备、系统、微信和基础库。检查纹理格式支持、Shader、相机与 Layer、分辨率及资源下载。开发者工具显示正常不能排除平台差异;先换默认素材或最小场景隔离。
内存越玩越高
分清堆、节点和纹理。观察场景退出后的监听、闭包、对象池和资源引用。检查是否每次重开都创建音频、粒子或广告实例而不释放。单次内存快照不能证明增长趋势。
存档总是恢复默认
检查写入回调、key、环境隔离、JSON 解析、版本与字段验证。不要把读取失败吞掉后立即覆盖默认值。确认自己没有在测试工具中清理缓存,且区分业务存档和下载缓存。
事件数据和实际局数对不上
检查启动事件时机、重复结算、退出丢事件、批量重试与服务端去重。对照同一局 ID 的完整序列,确认按局还是按人统计。无结果事件的局不能直接忽略。
广告没看完也发奖励
查是否在 onShow、展示成功或 onClose 的所有分支发奖。仅本次有效尝试且完整结果才进入奖励处理,拒绝过期与重复回调;有价值奖励需服务端幂等与验证。
最小排错纪律
记录预期与实际、固定版本和输入,一次只改变一个可疑因素。问题消失后回到原场景验证根因,补上相应行为检查或验收步骤。不要把临时重试、延时增加或异常吞掉当作已经定位原因。