如何从 Unity 中的可寻址系统仅下载已更改的文件

问题描述 投票:0回答:1

我正在开发一款使用

Addressable
的游戏。

我正在使用

Group
Addressable
功能来保持
AssetBundle
尽可能小。

我最近意识到,即使我只更改一个文件,我也需要下载包含它的整个

AssetBundle
。 由于
Addressable
的最小单位是
AssetBundle
,所以似乎如果
AssetBundle
中的文件发生更改,我不能只获取更改后的文件,而是包含它的整个
AssetBundle

我想解决这个问题,我想更改系统,以便如果只有 1 个更改的文件,则仅下载该文件。 所以我试图弄清楚如何查看

AssetBundle
内部并将从
Unity
外部下载的文件放入
AssetBundle
中。这是处理问题的正确方法吗?如果没有,我可能必须从头开始构建一个不使用
Addressable
的新系统。

是否可以在这样的环境中使用Addressable手动操作AssetBundle的内部,以便只下载更改的文件,然后尝试构建一个正常工作的系统?

谢谢你。

unity-game-engine assetbundle addressables
1个回答
0
投票

如上所述,“AssetBundle”顾名思义是多个资产的捆绑包。将其想象为 ZIP 存档文件。

=> 从外面你只能看到整个捆绑包发生了变化。在此阶段您不知道任何单独的文件。下载并解压整个捆绑包后,您只会看到只有一个文件发生了变化。


您应该根据您的需要对资产进行适当的分组和打包 - 通常,如果它们属于在一起并且可能一起更改,那么您通常希望将它们分组在一起。

根据您的情况,您可能想要进行高级设置

捆绑模式
如何将该组中的资源打包成捆绑包:

  • 打包在一起:创建包含所有资产的单个包。
  • 单独打包:为组中的每个主要资产创建一个捆绑包。子资产(例如 Sprite 表中的 Sprite)打包在一起。添加到组中的文件夹内的资源也会打包在一起。
  • 按标签打包在一起:为共享相同标签组合的资产创建捆绑包。

Afaik ˋPack Togetherˋ 是默认设置,也是您所描述的。

=> 您可能更愿意“单独打包”,以便每个根资源都位于单独的 AssetBundle 中。

© www.soinside.com 2019 - 2024. All rights reserved.