测试与调试
模组开发中,频繁测试是保证质量的关键。本节介绍 MC Studio 提供的所有测试方式和调试工具。
建议
不要等所有功能都做完再测试。每完成一个小功能就立即测试,这样能更快定位问题。
Mod PC 开发包
Mod PC 开发包是一个专门用于模组测试的特殊游戏客户端。与正式版客户端不同,它内置了大量调试功能。
三种启动方式
| 方式 | 操作 | 场景 |
|---|---|---|
| 编辑器内运行 | 编辑器右上角点击「运行」 | 最常用,开发中快速测试 |
| 启动器开发测试 | 作品列表 → 悬停 →「开发测试」 | 可自定义游戏模式、作弊等选项 |
| 工具箱启动 | 作品库 → 右上角「工具箱」→ Mod PC 开发包 | 多人联机测试时开第二个客户端 |
开发者菜单
Mod PC 开发包右上角有一个开发者菜单按钮,提供以下功能:
| 功能 | 说明 |
|---|---|
| 热更 | 修改 Python 代码后一键重载(自动热更失败时使用) |
| 重载 | 关闭并重新加载当前存档,等同于退出再进入 |
| 新建存档 | 关闭当前存档,新建一个全新存档进行测试 |
| 脚本日志测试 | 打开日志窗口,查看 print 和 logger 输出 |
| CPU 使用分析 | 性能分析工具 |
| 内存分析 | 内存占用分析工具 |
调试 HUD
在 Mod PC 开发包中按 F3 和 F4 可以切换不同的调试 HUD 界面,显示实时运行信息:
- 渲染区块信息
- 方块调试(准心对准的方块信息)
- 生物调试(Ctrl + 右键选中生物查看信息)
- 玩家调试(位置、速度、状态)
- 性能跟踪(内存、线程)
- 天气编辑器
- 音效编辑器
调试设置
打开 Mod PC 开发包的「设置」菜单,可以找到「调试」和「飞行调试」两个额外选项卡,包含数十个开发者选项,例如:
- 显示区块边界
- 显示碰撞箱
- 显示生物 AI 路径
- 显示红石信号
调试工具
调试工具是 MC Studio 内置的强大调试辅助工具,在电脑端开发测试时会自动启动。
主要功能
| 功能 | 说明 |
|---|---|
| 多端日志查看 | 在电脑上查看本机和手机测试客户端的日志,支持搜索、过滤、暂停 |
| 指令调试 | 直接输入 Python 代码在客户端/服务端运行,支持代码补全 |
| 组件同步 | PC 端修改后直接同步到手机测试端,省去重新提审的等待 |
日志功能详解
- 关键词搜索:输入关键词高亮匹配,支持正则表达式
- 标签过滤:按 Developer / Engine / INFO 等标签筛选日志
- 自定义标签:添加自定义字段作为过滤标签,在日志中以亮绿色显示
- 暂停/继续:暂停日志打印,暂停期间的日志会被缓存,不会丢失
- 过往日志:超出显示上限的日志自动保存到本地文件,可随时查看
日志颜色级别
在日志中使用以下关键字可以显示不同颜色,方便区分:
[DEBUG]— 调试信息[INFO]— 普通信息[WARNING]— 警告(黄色)[ERROR]— 错误(红色)
Python 指令调试
调试工具支持直接输入 Python 代码在运行中的游戏里执行:
- 在调试窗口的代码输入框中输入 Python 代码
- 选择「客户端运行」或「服务端运行」
- 查看执行结果
支持将常用代码保存为快捷指令,方便重复使用。
手机端测试
安装手机测试客户端
- 在 MC Studio →「管理」标签页 → 找到「测试版启动器下载」
- 扫码下载手机版测试 APP(支持 Android 和 iOS)
- 使用开发者账号登录
上传并测试
- 在 MC Studio 中找到作品 →「更多」→「发布」
- 填写信息并提交审核
- 当作品处于「审核中」状态时,即可在手机测试 APP 中搜索并下载测试
使用调试工具连接手机
- 在 MC Studio 中打开「调试工具」
- 点击「客户端 IP 连接」,输入手机的 IP 地址
- 连接成功后,手机端的日志会实时显示在电脑的调试工具中
- 还可以使用「组件同步」功能将 PC 端修改直接推送到手机
局域网多人测试
Mod PC 开发包支持局域网内的多人联机测试:
- 在编辑器中点击「运行」,启动 Mod PC 开发包 A
- 通过「工具箱」→「Mod PC 开发包」启动另一个客户端 B
- 在客户端 B 的「好友」界面找到客户端 A 的世界,加入
同一局域网内的其他开发者也可以用同样的方式加入测试。
热更新调试
在运行游戏时修改 Python 文件后,回到 MC Studio 或编辑器界面,系统会自动检测变更并重载代码。
热更新限制
- 对函数内实现的修改有较好的支持
- 新增类、新增文件、全局变量的修改可能无法生效
- 热更失败时,需要「保存退出到菜单」→ 重新进入存档,完整重载 Mod
常见测试问题
| 问题 | 解决方法 |
|---|---|
| Mod 不加载 | 检查 manifest.json 中的 UUID 是否唯一 |
| 自定义物品不显示 | 检查 identifier 在行为包和资源包中是否一致 |
| Python 报错 | 查看「脚本测试日志」窗口的完整错误信息 |
| JSON 格式错误 | 用 VS Code 打开 JSON 文件,查看红色波浪线标注的位置 |
| 手机端不生效 | 检查是否已提交审核且状态为「审核中」 |
