您的位置:首页 > 移动开发

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

2017-08-07 09:21 309 查看
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐