跳到主要内容

调试:把“不能用”变成可复现的问题

当 AI 交付的功能不正常时,不要立刻要求“重写一版”。先缩小问题范围:代码没编译、组件没配置、规则错了、显示错了,还是平台行为不同?

按这条链检查​

这是排查顺序,不是保证所有错误都只有一个原因。例如缺失资源可能同时来自导入设置和构建裁剪。

记录一次操作的关键字段​

对合成操作,可以记录操作编号、当前状态、源格、目标格、前后等级、规则返回值、分数变化和视图对象。日志越贴近业务边界,越容易找到状态在哪里偏离。

不要每帧打印全部棋盘,也不要把登录凭据或用户隐私数据写进日志。必要时用开发开关、采样和有限长度日志。

常见现象与检查方向​

现象先检查
脚本挂不上编译错误、文件名与类名、组件类型
点击无反应EventSystem、输入模块、遮挡、射线设置
拖拽偏移坐标空间、相机、锚点、父节点变化
一次点击执行两次重复监听、多个输入入口、对象重复创建
编辑器正常,构建异常资源引用、裁剪、平台 API、包版本
返回场景后才错静态状态、旧回调、重复初始化、清理不完整

堆栈要保留第一条相关异常和调用链。只截最后一行“NullReferenceException”,往往缺少实际对象和触发过程。

最小复现是什么​

保留能触发问题的最少对象、数据和操作,暂时去掉广告、联网与复杂特效。例如“两个同等级整数合成错误”,可以先在纯规则测试中复现;“点不到 UI”则需要保留 Canvas 与 EventSystem 配置。

最小复现不是把一切删掉。若问题只在微信缓存资源时出现,就必须保留相关平台与加载条件。

发给 AI 的错误包​

期望:0号格拖到1号格后,1号格升到2级,源格清空。
实际:数据正确,但画面仍显示两个1级物品。
环境:编辑器/包/转换SDK/微信/设备版本。
步骤:启动默认局 → 拖动 → 松手。
证据:操作前后棋盘、第一条相关日志、BoardView代码、对象引用。
范围:第一次可复现;关闭动画后仍可复现。
要求:先定位状态到视图的链路,再给出最小修改与验证步骤。

这样的上下文能让 AI 从证据出发。修复后回归同一复现步骤,再检查相关正常路径。不要通过增加延迟、吞掉异常或反复重启来掩盖根因。

参考:Unity 日志、Profiler。