如何在设备上保存 AssetBundle?

How to save AssetBundle on device?

我有一个游戏应用程序,一旦我的用户达到 25 级 - 我想下载未包含在安装中的新图片(壁纸和角色),我可以使用 assetBundle 来完成。 但我只想下载一次 assetBundle 并将其(永久)保存在设备上。 到目前为止我的代码-

AssetBundle myLoadedAssetBundle = AssetBundle.LoadFromFile(@"C:\ab\level25"); *path will be a server
Sprite newSprite = myLoadedAssetBundle.LoadAsset<Sprite>("Assets/pic1.jpg");
....

我阅读了一些关于 LoadFromCacheOrDownload 的内容,但它似乎已过时,也不确定它是否会在重启后删除 assetbundle 对象。 我基本上想在我的设备上保存 "myLoadedAssetBundle" 对象,并在需要时从中提取我的照片,这样我的用户就不必连接到互联网并再次重新下载文件

您可以将资产包本身存储在 PersistentDataPath 中,或者打开它并将提取的内容存储在托管文件夹中。

存储内容:

File.WriteAllBytes(Application.persistentDataPath + "/some/file");

读取资产:

var data = File.ReadAllBytes(Application.persistentDataPath + "/some/file");

读取存储的资产包:

AssetBundle bundleLoadRequest = AssetBundle.LoadFromFile(Application.persistentDataPath + "/some/bundle");