在 Unity 中使用 Play Asset 交付后,应用程序大小翻倍

Posted

技术标签:

【中文标题】在 Unity 中使用 Play Asset 交付后,应用程序大小翻倍【英文标题】:App size doubles after using Play Asset delivery in Unity 【发布时间】:2021-10-15 07:34:48 【问题描述】:

我刚刚按照本指南导出了我的游戏以使用 Play 资产交付: https://docs.unity3d.com/2021.1/Documentation/Manual/play-asset-delivery.html

总之

已启用构建应用程序包 还检查了拆分应用程序二进制文件。

导出的 aab 大小为 311mb,上传到 google play 时显示:

base               ----install_time  ---30.1mb
UnityDataAssetPack ----install  time ---264mb

但是当我在任何设备上下载应用程序时,文件大小为 846mb,是预期大小的两倍多。它还尝试一次全部下载,我认为dataassetpack是在base之后下载的。

我正在使用 Unity 2021.1.16f1

您知道发生这种情况的任何原因以及如何解决吗? 非常感谢!

【问题讨论】:

【参考方案1】:

您将“下载大小”与“磁盘大小”进行比较:

您在 Play 管理中心看到的大小对应于下载大小,即压缩。 在设备上,您会看到 磁盘大小 存储数据的位置未压缩,因此可以直接呈现数据,而无需保留相同数据的两个副本(一个压缩的,一个未压缩的),这就解释了差异。

您似乎已将模块配置为 install-time,因此它们将作为初始安装的一部分进行安装。如果您希望在用户开始游戏时安装它们,您应该将它们配置为快速跟随。如果您想使用 Play Core API 手动下载它们,您应该将它们配置为 on-demand。这一切都在在运行时管理资产包部分的page you linked 中进行了解释。

该页面还链接到有关该主题的 Google documentation,其中有一个专用的 section for Unity - 此处复制太长,因此请阅读并在您有更具体的问题时回来。

【讨论】:

感谢您的回答,这就是我的意思,800mb 是我的应用程序的大小,没有任何压缩,这很奇怪!似乎在上传它时它会失去压缩,我可以看到在使用捆绑工具时,以前压缩的资产不再在生成的 apk 中减少 我试图解释的是,谷歌认为资产最好在设备上解压缩,因为如果它们被压缩,它们就需要解压缩,这样它们才能被渲染,你最终会得到设备上的 2 份资产副本(一份已压缩,一份未压缩),比未压缩的资产要大。 App Bundle 中的压缩无关紧要,因为它只是用于上传目的,所以越小越好,但在设备上因为资产需要解压缩,您应该希望它已经解压缩。希望这更有意义。 这毫无意义!现在,该应用程序未压缩所有设备。我知道谷歌会自动为每台设备创建一个新的 apk,导致一些 apk 比其他的大,但现在,它们的下载大小都是 800mb(压缩大小是 300) 我认为这是 Unity 方面的一个错误,我在开发模式下构建了一个 aab,一切都按预期进行,磁盘容量大,下载容量小,我会提交一个 bug 票 你在哪里看到下载大小是800MB?下载应用程序时是否在 Play 商店中?还是当您查看应用安装后的信息时?

以上是关于在 Unity 中使用 Play Asset 交付后,应用程序大小翻倍的主要内容,如果未能解决你的问题,请参考以下文章

“构建错误:构建失败,出现 4 个错误 UnityEngine.Debug:LogErrorFormat (string,object[])”,而在 Unity 中使用 Play Asset Deli

可以从原始文件:///android_asset 使用 Google Play 游戏服务

Unity asset序列化

unity怎么调用asset文件

Unity中 动态加载 Resources.Load()和Asset Bundle 的区别

unity---用.asset文件作为配置文件