4. 调试与 Mock 方案
收藏
我的收藏由于 “云同步” 技术方案的特殊性,与普通 Unity 游戏开发的情况有所不同,我们需要在开发时模拟多个主播开播的情形,调试不同的画面与输入。
开发不同阶段,调试方案:
| —— 推荐使用本地 Full Mock 方案,进行开发和调试 |
| —— 可以到伴侣直播玩法的真实环境,进行调试和测试 |
本地 Full Mock 调试方案
特点:
- •可以在本地模拟,较为完整的模拟两个客户端同玩的流程
- •调试多实例画面与输入,调试匹配、切流、同玩的流程,有接近真实环境的RTC推流
接入 Full Mock
在云同步接入代码的初始化前调用:
MockCloudSync.Setup(MockType.Full)
示例代码:
private async Task InitCloudGame() { // 设置 Full Mock,需在云同步Init之前调用 MockCloudSync.Setup(MockType.Full); // 云同步初始化 Init var initResult = await ICloudSync.Instance.Init(...); // ... }
调试运行
一个 Unity Editor,一个独立 exe 来调试运行。
- 1.前置:打开Unity工程。
- ◦可以使用云同步 SDK Demo工程,或使用开发者自己的玩法工程(接入了云同步SDK)。
- ◦Unity版本建议2021或以上
- 2.前置:接入Mock代码。
- ◦云同步Init之前调用:
MockCloudSync.Setup(MockType.Full)
- 3.Editor中Build构建exe。
- 4.Editor中Play运行,点击【开始】,进入Mock调试“主播A”
- a.Play运行后,在Game视图,看到Mock Settings画面,如下图。
- b.其中Mock Settings说明:
1. Start As Server 默认勾选。
(备注:本地FullMock时,先启动的程序会默认勾选,表示他会创建一个Mock模拟的云游戏RTC服务)
2. 可自定义Mock网络设置,例如:Port 端口;NetDelay 可模拟Sdk接口的网络延迟;
3. 可自定义Mock模拟的主播信息,例如:LiveRoomId 直播间id;OpenId 直播openId;NickName 主播昵称。
4. 【开始】按钮,进入Mock调试。
- c.点击【开始】后,这个客户端会模拟作为一个主播,记为“主播A”
- 5.运行构建的exe,点击【开始】,进入Mock调试“主播B”
- a.运行exe进入后看到Mock Settings画面
- b.其中,Start As Server 不勾选。
(备注:后启动的程序不勾选Start As Server,表示他是要加入已开启的Mock模拟RTC服务)
- c.开始后,这个客户端会模拟作为第二个主播,记为“主播B”
- 6.看到游戏画面,即可调试“主播A”和“主播B”两个主播的画面、输入,以及匹配切流等流程了。
- a.说明:其中,Editor运行的,可以按常规Unity程序调试方式,下断点、看日志等方式调试。
- b.说明:其中,exe运行的,可以看Player.log日志,或自行attach调试器下断点。
- i.我们提供的demo的exe的输出日志,默认位于:%userprofile%\AppData\LocalLow\ByteDance\CloudSyncDemo\Player.log
- ii.Unity的Player.log日志,默认位置在C盘user目录的\AppData\LocalLow\公司名\Project名
- iii.Exe运行也可以用命令行方式手动指 定,示例:
cloudgame.exe -LogFile x1.log
会将日志输出在当前同级目录、保存为所指定文件名x1.log
演示视频:
伴侣真实环境调试
开发到较高完成度后,可以上传和发布版本到开放平台直播小玩法,参考玩法发布 https://developer.open-douyin.com/docs/resource/zh-CN/interaction/introduction/zn/toybox-publish。
按直播小玩法的正常运行方式,在直播伴侣中,进行开播、挂载玩法、测试调试。
附:其他调试方案
Simple Mock 调试方案
优点:
- •本地Editor即可模拟主播加入,可以快速本地预览 A,B 主播的画面。
缺点:
- •只能在 Editor 下,预览单个实例的两个玩家画面。不能模拟整个流程。
接入 SimpleMock:
示例代码:
private async Task InitCloudGame() { // 需在 CloudSync.Init 之前调用 MockCloudSync.Setup(MockType.Simple); // 简单版本的 Mock,可以预览画面多路输出效果 ... }
预览:
在 Editor 环境下可以通过菜单项
CloudSync/Screen1
& CloudSync/Screen2
,打开独立的窗口来预览和操作主播的画面。菜单项入口 | |
预览窗口 |
附:Mock方案对比
三种方案各有优劣,是相互的能力的补充。
建议开发调试的顺序为:
- 1.前期使用 SimpleMock 方案调试多路画面输出效果。
- 2.中期使用 FullMock 方案,较完整的模拟云同步方案能力。
- 3.最终发布,并在直播伴侣中验证。