unity从streamingassets拷贝到persistentassets,再从persistentassets用www加载进入场景

void OnClick()

{

//StartCoroutine(LoadLevel());

StartCoroutine(LoadFrompersister());

}

IEnumerator LoadLevel()

{

string url = "file://" + Application.dataPath + "/2.Android.unity3d";

Debug.Log(url);

WWW www = WWW.LoadFromCacheOrDownload(url, 3);

yield return www;

if (www.error != null) yield return null;

AssetBundle b = www.assetBundle;

Application.LoadLevel("2");

}

IEnumerator LoadFrompersister()

{

try

{

FileStream fs = File.Create(Application.persistentDataPath + "/1.txt");

fs.Close();

fs = File.Create(Application.persistentDataPath + "/1.txt");

fs.Close();

lab.text = Application.persistentDataPath;

}

catch (System.Exception ex)

{

lab.text = ex.Message;

}

string des = Application.persistentDataPath + "/2.Android.unity";

string src =

#if UNITY_EDITOR

"file:///"+Application.streamingAssetsPath + "/2.Android.unity3d";

des = des.Replace(‘/‘, ‘\\‘);

#elif UNITY_ANDROID

"jar:file://" + Application.dataPath + "!/assets/2.Android.unity3d";

#endif

Debug.Log("des:"+des);

Debug.Log("src:"+src);

//lab.text = Directory.GetFiles(Application.streamingAssetsPath)[0];

//string filePath = System.IO.Path.Combine(Application.streamingAssetsPath, "1.txt");

using (WWW w = new WWW(src))

{

yield return w;

if (string.IsNullOrEmpty(w.error))

{

while (w.isDone == false) yield return null;

if (File.Exists(des))

File.Delete(des);

FileStream fs1 = File.Create(des);

BinaryFormatter bf = new BinaryFormatter();

bf.Serialize(fs1, w.bytes);

fs1.Close();

}

else

{

Debug.LogError(w.error);

}

}

string downpath = "file:///" + Application.persistentDataPath + "/2.Android.unity";

Debug.Log("down path:" + downpath);

using (WWW www = WWW.LoadFromCacheOrDownload(downpath, 7))

{

yield return www;

AssetBundle b = www.assetBundle;

Application.LoadLevel("2");

//lab.text = downpath;

}

时间: 2024-08-08 01:25:27

unity从streamingassets拷贝到persistentassets,再从persistentassets用www加载进入场景的相关文章

再谈javascript图片预加载技术

图片预加载技术的典型应用: 如lightbox方式展现照片,无疑需要提前获得大图的尺寸,这样才能居中定位,由于javascript无法获取img文件头数据,必须等待其加载完毕后才能获取真实的大小然后展示出来,所以lightbox显示的图片的速度体验要比直接输出的差很多,而本文说提到的预加载技术主要针对获取图片尺寸. 一段典型的使用预加载获取图片大小的例子: var imgLoad = function (url, callback) {    var img = new Image();   

玲珑杯Unity开发心得——进度条界面(异步加载游戏场景)

/////////////2015/08/04////////////// ////////////by xbw//////////////////// ///////////环境 unity 4.6////////// 先上效果图 还可以吧,先贴一下代码, using UnityEngine; using System.Collections; public class Loading4 : MonoBehaviour { public Texture2D load_write; //进度条底

Unity带进度条加载场景及场变黑的解决方法

首先说加载场景显示进度条 简单的来说需要协程+Update 一直用UGUI,进度条就用Slider 别忘了引用 using UnityEngine.UI; public Slider slider; 如果想在旁边显示个数字百分比,就再加个Text就好了 public Text text; 假设我们所在场景为old,要去往场景new,如何加载并显示进度呢 可以直接在old场景中做,也可以加一个中间场景专门显示加载进度 我们就加个中间场景吧,叫middle 而加载的进度条slder和百分比文字tex

全面理解Unity加载和内存管理

Unity里有两种动态加载机制:一是Resources.Load,一是通过AssetBundle,其实两者本质上我理解没有什么区别.Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时动态加载,可以指定路径和来源的. 其实场景里所有静态的对象也有这么一个加载过程,只是Unity后台替你自动完成了. 详细说一下细节概念:AssetBundle运行时加载:来自文件就用CreateFromFile(注意这种方法

Unity 全面理解加载和内存管理

最近一直在和这些内容纠缠,把心得和大家共享一下: Unity里有两种动态加载机制:一是Resources.Load,一是通过AssetBundle,其实两者本质上我理解没有什么区别.Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时动态加载,可以指定路径和来源的. 其实场景里所有静态的对象也有这么一个加载过程,只是Unity后台替你自动完成了. 详细说一下细节概念:AssetBundle运行时加载:来自

Unity+NGUI打造网络图片异步加载与本地缓存工具类(一)

我们在移动端的开发中,异步网络图片加载用的非常的多,在unity当中虽然有AssetBundle的存在,一般是先加载好游戏资源然后再进入场景,但是还有不少地方能够用到异步网络图片的加载以及其缓存机制. 我之前也写过两个版本的ios中的异步网络图片加载helper类,所以今天按照同样的思路,也想做一个好用的helper类给大家使用以及简单的说下实现原理. 首先我们加载一张网络图片,要做的事情分步来讲为: 0.开始之前设置一张固定的图片作为占位图(placeholder),表示我们的图片还没加载好,

Unity游戏场景加载Loading详解

游戏中的Loading现在都做得很漂亮,但是归根究底就两种类型,静态Loading和动态Loading.静态Loading可能就是一张背景图.而动态的Loading就是在读取的同时有一个东西在“转圈”. 1.静态Loading:优点:读取场景使用同步的方法就可以,因为是同步方法所以读取的速度是最快的,也不用更新界面,因为同步执行方法的时候程序在等待读取结束.执行Application.LoadLevel(“name”);同步方法来加载你的场景. 缺点:Loading的时候如果界面不动,那么用户体

unity内存加载和释放

Unity几种动态加载Prefab方式的差异: 其实存在3种加载prefab的方式: 一是静态引用,建一个public的变量,在Inspector里把prefab拉上去,用的时候instantiate 二是Resource.Load,Load以后instantiate 三是AssetBundle.Load,Load以后instantiate 三种方式有细节差异,前两种方式,引用对象texture是在instantiate时加载,而assetBundle.Load会把perfab 的全部asset

[Unity-24] Unity的四种加载场景的方法

Unity官方提供了4种加载场景(scene)的方法,分别是: 1. Application.LoadLevel():同步加载 2. Application.LoadLevelAsync():异步加载 3. Application.LoadLevelAddictive():同步附加式加载 4. Application.LoadLevelAddictiveAsync():异步附加式加载 下面对这四种方法进行简要的介绍和分析: 1.同步加载:假设当前场景为A,我们要切换到场景B,unity会在切换场