unity 分包下载

我先说说为什么 要分包下载,原因是有时一个包非常的大,如果不分包,需要全部下载完,这个包的内容才能够显示,这样的话,用户需要等待很长时间,才看到显示,但是如果做分包处理,那么程序一运行,就会看到包的一部分内容,加载一个包就显示一个包,用户体验会明显好一些


技术上主要用(WWW+递归)!


unity 分包下载_第1张图片


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)

你可能感兴趣的:(Unity)