如何在设备上保存 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");
我有一个游戏应用程序,一旦我的用户达到 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");