Unity包体格式更新
一、什么是Unity新旧包体格式
格式对比
旧格式:(zip文件)
主要产物内容在zip包文件中,game.json以及project.config.json负责项目相关配置。
新格式:(产物文件目录)
产物内容以及game.json,project.config.json 在同一文件目录中。其格式与普通小游戏类似
- •旧包体格式:仅针对过往Unity小游戏项目的包体格式,是平台早期为适配Unity引擎单独搭建的服务通道,后续不再维护,请尽快切换到新包体格式。
- •新包体格式:平台统一的小游戏服务链路,支持所有引擎类型(Unity、Cocos等),是「引擎切换」能力的基础支撑通道,新创建的小游戏默认接入此链路。
二、接入评估
后续的Unity包体格式都建议使用新包体格式,新特性将主要围绕新包体格式进行开发。新格式虽然可以支持更多的特性,但同时也存在一定的限制。开发者可根据自身情况来决定是否使用新格式的包体。
新包体格式优势 | 新包体格式限制 |
gameManager.startGame() 调用时机来自主控制 Unity 的启动时机;
|
|
三、接入流程
1.调试环境准备
工具 | 下载链接 |
unity构建工具 | TTSDK需要使用6.6.3及以后版本 Unity 团结 |
开发者工具 | IDE中需要设置调试基础库版本>=3.77.0.0 |
客户端 | 请使用>=35.0.0版本的抖音进行调试 |
2.unity产物构建
参考文档:
2.1 自定义构建模板
平台侧会提供CustomizeTemplate用于游戏侧自定义构建模板配置,同时也会提供DefaultTemplate作为兜底构建模板;
- •构建时优先采用 CustomizeTemplate 模板的配置;若 CustomizeTemplate 不存在,则使用 DefaultTemplate 作为兜底构建;若 DefaultTemplate 也不存在,将以代码生成的 js 作为最终兜底方案。
- •每次升级构建插件,都会覆盖还原DefaultTemplate,开发者尽量不要对该目录下的文件内容进行更改。
2.2 打开内测构建面板
构建面板路径:unity菜单栏选择
ByteGame → TTSDKTools → Build Tool2.3 取消勾选 「采用旧格式打包」
构建面板中取消勾选 「采用旧格式打包」,即可构建出新的包体格式结构。
2.4 Native方案注意事项
包体存放目录:新包体格式下 Native构建产物默认与WebGL产物在同一目录下,其文件单独存放在
tt-minigame/native文件夹下。文件名以及文件夹固定,不可更改,否则无法识别。
详情见下图:
上传:上传时需要在详情页勾选
Android端使用Native方式渲染3.工程配置
3.1 配置性能模式
包含unity引擎构建产物的游戏必须运行在性能模式下:
- •在通过构建工具导出时,会自动为项目配置高性能模式(game.json中的
enableIOSHighPerformanceMode设置为true);- •如果需要设置为高性能+模式,需要游戏侧在构建面板主动勾选;
3.2 配置网络域名白名单
参考开发者文档中的配置教程
检查是否配置完所有域名:
- 1.首先对代码进行扫描,找到所有网络相关API(request、upload、download、connectSocket)的调用处,遍历url字段的入参,对涉及到的域名进行配置;
- 2.开发者工具中取消勾选「不校验合法域名······」的配置选项(如下图),通过模拟器/真机预览进行游戏整体流程的测试;
- 3.新包格式方案需要对游戏内使用的请求域名做配置申请,不申请的请求会被拦截。如果使用了ip地址 做请求的,需要勾选【不校验合法域名】配置。
3.3 自定义启动图
这部分主要介绍启动图各个配置字段可以怎样进行自定义配置。
整体配置 | 配置项 | 释义 |
| disableLoadingPage | true:不展示自定义启动图 false:展示自定义启动图【默认,推荐使用】 |
hideAfterCallmain | true:在callmain阶段结束后立即隐藏封面视频 false:等待首帧渲染回调后隐藏【默认】 | |
designWidth designHeight | 设计图稿的宽高,未设置时默认为0,取设备宽高。 | |
scaleMode | 缩放模式,有以下取值:
| |
textConfig: { firstStartText: '首次加载请耐心等待', downloadingText: ['正在加载资源'], compilingText: '编译中', initText: '初始化中', completeText: '开始游戏', textDuration: 1500, }, | 加载阶段的展示文案:
downloadingText[n](firstStartText)
compilingText
initText
completeText
| |
textConfig: { // 文字样式 style: { bottom: 85, height: 17, width: 280, color: '#ffffff', fontSize: 13, }, }, // 进度条样式 barConfig: { style: { width: 280, height: 12, padding: 2, bottom: 69, backgroundColor: '#ffffff', }, }, // 一般不修改,控制icon样式 iconConfig: { visible: true, style: { width: 106, height: 40, bottom: 141, }, }, | 文字、进度条、logo样式。 bottom:相对于设计稿底部的偏移height:高度width:宽度color:文字颜色fontSize:文字大小padding:进度栏与进度条的内间距backgroundColor:进度条的颜色visible:logo图是否可见注:
| |
materialConfig: { backgroundImage: 'images/background.png', iconImage: 'images/unity_logo.png', }, | 加载页的素材配置,其中 backgroundImage为背景图,iconImage为logo图。素材支持三种配置方式:
|
四、常见问题(FAQ)
- •Q1:已创建的小游戏项目,如何判断是否需要迁移至Unity新包体格式?
- •A1:平台后续不再维护Unity旧包体格式,请尽快迁移
- •Q2:迁移至Unity新包体格式后,原小游戏的运营数据(如用户数据、收入数据)是否会受影响?
- •A2:不受影响
