🛠️ 调试指令与 GM 工具
重要性: Roguelike 游戏的随机性是测试的噩梦。如果没有一套强大的上帝工具,QA 根本无法验证”第 50 层刷出的神器是否会导致闪退”。
1. 核心指令集 (Command List)
建议接入开源库(如 SRDebugger 或 IngameDebugConsole),实现以下指令:1.1 资源控制
| 指令 | 参数 | 说明 |
|---|---|---|
/add_gold | [amount] | 加金币 |
/add_exp | [amount] | 加主角经验 |
/add_res | [resType] [amount] | 加任意资源 |
/level_up | [count=1] | 直接升级并触发 Perk 选择界面 |
/max_level | - | 直接升至满级 |
/reset_progress | - | 重置所有进度(危险操作,需二次确认) |
1.2 流程控制
| 指令 | 参数 | 说明 |
|---|---|---|
/skip_wave | - | 直接跳过当前波次(杀死所有怪) |
/goto_wave | [waveNum] | 跳到指定波次 |
/spawn_mob | [id] [count] | 在鼠标位置生成指定怪物 |
/spawn_boss | [bossId?] | 直接召唤当前关卡或指定 BOSS |
/time_scale | [float] | 游戏变速: 0=暂停, 10=十倍速 |
/pause | - | 暂停游戏逻辑(不暂停 UI) |
/complete_stage | - | 直接通关当前关卡 |
1.3 装备与掉落
| 指令 | 参数 | 说明 |
|---|---|---|
/give_item | [id] | 以此 ID 获取装备 |
/give_random | [rarity] [count] | 获取随机装备 |
/force_drop | [rarity] | 下一次击杀必掉指定稀有度物品 |
/clear_bag | - | 清空背包 |
/unlock_all | - | 解锁全部物品图鉴 |
1.4 无敌与状态
| 指令 | 参数 | 说明 |
|---|---|---|
/god_mode | [on/off] | 主角无敌 + 秒杀敌人 |
/no_cd | [on/off] | 技能无冷却 |
/no_cost | [on/off] | 技能无消耗 |
/invisible | [on/off] | 敌人忽略玩家 |
/show_fps | - | 显示帧率和内存占用 |
/show_hitbox | - | 显示碰撞体积 |
2. 快速调试技巧
2.1 编辑器快捷键绑定
在 Unity 编辑器中设置自定义快捷键,大幅提升调试效率:2.2 游戏状态快照 (Snapshot)
实现游戏状态的快速保存/恢复,用于反复测试同一场景:[!TIP] > 随机种子是关键:恢复快照时必须同时恢复随机种子,否则后续的随机事件会完全不同。
2.3 条件断点与日志过滤
2.4 可视化调试 (Gizmos)
3. 实时变量调节 (Runtime Tweaking)
3.1 ScriptableObject 热重载
3.2 调试面板 (SROptions 风格)
3.3 命令行参数
支持启动时通过命令行设置调试参数:4. 自动化测试脚本 (Auto-Play Bots)
为了测试服务器压力或数值崩坏,需要简单的 AI 脚本:4.1 基础挂机机器人
4.2 随机操作机器人
4.3 压力测试机器人
5. 性能监控面板
5.1 实时 FPS 与内存
5.2 关键系统监控
6. 错误追踪与上报
6.1 异常捕获
6.2 游戏回放录制
[!IMPORTANT] > 确定性回放需要游戏逻辑完全确定性:相同输入 + 相同随机种子 = 相同结果。这对于多人游戏同步和 Bug 复现极其重要。
7. 安全与权限 (Security)
7.1 编译条件
7.2 后门锁设计
如果必须在 Release 版保留(为了线上救火),必须加密码锁或设备 ID 白名单:7.3 白名单机制
8. 推荐插件与工具
商业/开源插件
| 插件名 | 类型 | 特点 | 链接 |
|---|---|---|---|
| Quantum Console | 控制台 | 极其强大的 C# 控制台,支持自动补全 | Asset Store |
| SRDebugger | 调试面板 | 手机端非常好用,支持各种 Tweak 选项 | Asset Store |
| Ingame Debug Console | 控制台 | 开源免费,轻量级 | GitHub |
| Console Pro | 编辑器增强 | 增强 Unity Console,支持过滤和折叠 | Asset Store |
| Graphy | 性能监控 | 免费的 FPS/内存/音频监控 | GitHub |
自研工具建议
9. 调试清单 (Checklist)
发布前必查
- 所有
#if UNITY_EDITOR宏正确使用 - 调试快捷键不会打包进 Release
- 控制台密码已更新
- 白名单设备 ID 已配置
- 崩溃上报服务已启用
- 日志级别已设置为
Error或更高
常见调试场景
| 场景 | 推荐工具/方法 |
|---|---|
| 复现随机 Bug | 保存随机种子 + 回放系统 |
| 内存泄漏 | Memory Profiler + 长时间挂机测试 |
| 性能瓶颈 | Frame Debugger + 自定义 Profiler |
| 数值失衡 | 变速 + 快速升级 + 日志分析 |
| 网络同步问题 | 本地双开 + 网络日志 |