IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity发布Android App Bundle详解(四)Addressables+Play Asset Delivery分发 -> 正文阅读

[游戏开发]Unity发布Android App Bundle详解(四)Addressables+Play Asset Delivery分发

在之前文章我们了解到了:

  • Unity aab要我们自己处理,Unity目前没有提供完整的解决方案帮我们自动处理(截止2021.7.16号)
  • 2021.8.1号开始谷歌对新应用只能接受aab格式,而aab的本体包限制在150M
  • aab格式超过150M的应用要自行通过Play Asset Delivery分发
  • Unity应用需要通过AssetBundle进行包体拆分,然后通过GooglePlay提供的Play Asset Delivery分发

那前面的工作我们都准备完毕了,现在我们开始进行aab的打包,并上传谷歌后台的工作。?

导入GooglePlay插件

这里有完整的官方文档,大家可以到这里看详细步骤,我简单的说下步骤。

我们先从GitHub上下载下来对应的Play Asset Delivery插件,导入到Unity,该插件封装了一些接口,如获取我们的资源包,下载资源包,读取资源包到内存等等,有了这个插件我们可以才能进行接下来的工作。

导入Addressables+Play Asset Delivery支持库

因为Unity对于Addressables和aab的集成目前还没有比较好的支持,所以Addressables这边需要自行处理。

特别注意:?

使用该库进行分发,Google/Android App Bundle中的命令千万不能再用了,否则会覆盖掉配置文件

配置Addressables

接下来需要配置Addressables,以使可寻址系统跟这两个插件集成起来。

这里面也有很多坑,文档也写的不清不楚,集成完毕后发现效果总是不理想,我是自己通过源码分析定位到问题的。

配置Addressables Groups

分好的Addressables Groups应该是这样(如果这步骤不会,请查看之前文章步骤)

新建Group或者默认的都可以

配置分发模式

这步的意义是,让Play Asset Delivery识别你这个Group是怎么加载方式,是使用install-time呢还是on-demand还是fast-follow呢。有几个Group就要配置几次。

  • 选择Group,在Inspector界面我们看到如图,这些配置随意,默认就行(因为也用不到)
  • 点击Add Schema按钮,选择Play Asset Delivery
  • 配置Delivery Mode(这些什么意思不懂的请看之前的文章)
    只测试过Install Time的,其他两个暂未使用到,先不说
  • 再次选中Group,点开Advance Options,修改圈出来的两个地方
  • 将圈出来的两个地方修改为如下
    注意:这两个有点像,切记不要配错了,一定要认真
    Asset Provider: Assets From Bundles Provider (Sync)
    AssetBundle Provider: AssetPack Bundle Provider (Sync)

配置结束,后续可以开始打包

打包aab

打包Addressables

上面的配置完成后,先将资源包打包出来

运行Build-New Build-Default Build Scripts,等待进度条结束

创建GooglePlay认的Asset Pack配置

aab打包的时候认的是Library下的PlayAssetPackConfig.json文件,所以目前我们要将Addressables的配置修改到PlayAssetPackConfig.json文件中,让谷歌能识别到。

创建配置:

  • 运行命令:Create config for Addressables Groups,等待结束
  • 结束后Asset/Resources目录下会多出一个AssetPacks文件,里面记录了Addressables配置
    原理是:该文件记录了文件key,然后Addressables初始化时,通过Play Asset Delivery接口进行读取资源

打包aab文件?

运行命令Google/Build Android App Bundle...命令,选择目录,等待进度条结束

注意:记得先设置下Keystore

正确的进度条应该如图

?

打包后

?

将后缀名改成rar,用压缩包打开确认,有圈起来的文件,说明OK了

完整文件就是一个aab文件,上传谷歌后台即可

上传谷歌后台

上传aab文件

确认文件

上传完成后,在App Bundle探索器可以看到分发内容,base就是本体包大小,Asset Packs下会列出分发的内容,可以看到那边分发模式会写Addressables那边配置的模式

发布测试

?通过Google Play商店进行下载,下载的包大小是本体包大小+install time的包体大小总和。

小技巧

如果测试发现不正确,可以在打包的时候加上两个宏定义ADDRESSABLES_LOG_ALL;DEBUG_PLAYASSETDELIVERY

这样通过LogCat软件就会输出Addressables加载的日志,这样可以加快分析。

同时也可以查看源代码进行调试定位问题。

总结

该系列文章正式结束,踩的坑还是蛮多的,谷歌对玩家人性化,但是对开发者就是痛苦了,Unity这次有点拉跨,UE4都已经集成了PlayAssetDelivery了,而Unity还是没有完整的解决方案(截止2021.7.16)。

感谢大家的阅读,也希望这些文章对你们有帮助,让这个技术生态变得更好。

上一篇:Unity发布Android App Bundle详解(三)快速转换Addressables

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-07-17 12:15:58  更:2021-07-17 12:16:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 15:06:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码