使用Application.persistentDataPath将Assetbundle缓存到本地

xiaoxiao2021-02-28  108

IEnumerator loadAndSaveAsset(string url) //下载网络模型并缓存到本地 { WWW w = new WWW(url); yield return w; if (w.isDone) { byte[] model = w.bytes; int length = model.Length; //文件流信息 //StreamWriter sw; Stream sw; FileInfo t = new FileInfo(Application.persistentDataPath + "//" + "Model.assetbundle"); if (!t.Exists) { //如果此文件不存在则创建 sw = t.Create(); } else { //如果此文件存在则打开 sw = t.OpenWrite(); } sw.Write(model, 0, length); //关闭流 sw.Close(); //销毁流 sw.Dispose(); } }

从本地读取模型文件:

//读取本地的模型文件 IEnumerator LoadModelFromLocal() { string s = null; #if UNITY_ANDROID s = "jar:file://" + Application.persistentDataPath + "/" + "Model.assetbundle"; #elif UNITY_IPHONE s = path+"/"+name; #elif UNITY_STANDALONE_WIN || UNITY_EDITOR s = "file://"+path+"/"+name; #endif WWW w = new WWW(s); yield return w; if (w.isDone) { Instantiate(w.assetBundle.mainAsset); } }

删除文件

void DeleteFile(string path, string name) { File.Delete(path + "//" + name); }

FR:海涛高软(hunk Xu)

转载请注明原文地址: https://www.6miu.com/read-71850.html

最新回复(0)