我先说说为什么 要分包下载,原因是有时一个包非常的大,如果不分包,需要全部下载完,这个包的内容才能够显示,这样的话,用户需要等待很长时间,才看到显示,但是如果做分包处理,那么程序一运行,就会看到包的一部分内容,加载一个包就显示一个包,用户体验会明显好一些
技术上主要用(WWW+递归)!
StartCoroutine(“xiazaii”,mm[0].path); //开始下载
public IEnumerator xiazaii(string path){
WWW bundle = WWW.LoadFromCacheOrDownload(path, 8);
yield return bundle;
if (bundle.error == null)
{
GameObject obj = bundle.assetBundle.mainAsset as GameObject;
LoadedModel = Instantiate(obj);
yield return LoadedModel;
target = LoadedModel.transform;
//FR:海涛高软(Hunk Xu)
bundle.assetBundle.Unload(false);
yield return new WaitForSeconds(2f);
iii++;
if (iii < mm.Count) //说明还有分包需要下载
{
StartCoroutine("xiazaii", mm[iii].path);
}
else
{
//这行代码能够被执行,说明是所有的分包已经全部完成
iii = 0;
kong = true;
}
}
else
{
// 分包下载出现错误
}
}
持之以恒,不忘初心!
FR:徐海涛(Hunk Xu)