예제 #1
0
        public IEnumerator GetResAsys(string bundleName, BundleInfo tmpInfo)
        {
            bool hasFind = false;

            ///缓存中已经加载了Object
            if (loadObj.ContainsKey(bundleName))
            {
                //Debug.Log("get  from memory =="+ resName);
                AssetResObj tmpRes = loadObj[bundleName];

                List <Object> tmpObj = tmpRes.GetResObj(tmpInfo.resName);
                if (tmpObj != null)
                {
                    tmpInfo.AddReses(tmpObj.ToArray());


                    tmpInfo.ReleaseObj();
                    hasFind = true;
                }
            } // 没有找到 继续向下


            if (!hasFind && loadHelper.ContainsKey(bundleName))
            {
                IABRelationManager loader = loadHelper[bundleName];

                yield return(loader.GetResAsys(tmpInfo)

                             );

                AssetObj tmpAssetObj = new AssetObj(tmpInfo.resObj);

                //是否已经包含bundle 
                if (loadObj.ContainsKey(bundleName))
                {
                    AssetResObj tmpRes = loadObj[bundleName];


                    tmpRes.AddResObj(tmpInfo.resName, tmpAssetObj);
                }
                else
                {
                    AssetResObj tmpRes = new AssetResObj(tmpInfo.resName, tmpAssetObj);
                    loadObj.Add(bundleName, tmpRes);
                }


                tmpInfo.ReleaseObj();
            }
        }
예제 #2
0
        public IEnumerator  LoadResAsys(BundleInfo tmpNode)
        {
            if (this.ABRes != null)
            {
                if (tmpNode.isSingle)
                {
                    AssetBundleRequest tmpRequest = ABRes.LoadAssetAsync(tmpNode.resName);
                    yield return(tmpRequest);

                    // Debug.Log("tmpRequest resName== "+tmpNode.resName+"==="+tmpRequest.asset.name);


                    //GameObject.Instantiate(tmpRequest.asset);
                    tmpNode.AddReses(tmpRequest.asset);


                    yield return(null);
                }
                else
                {
                    AssetBundleRequest tmpRequest = ABRes.LoadAssetWithSubAssetsAsync(tmpNode.resName);


                    yield return(tmpRequest);

                    // Debug.Log("tmpRequest mutti resName== " + tmpNode.resName+"==="+tmpRequest.allAssets.Length);
                    tmpNode.AddReses(tmpRequest.allAssets);

                    yield return(null);
                }
            }
            else
            {
                Debuger.Log("IResloader AB Not Cantain ==" + tmpNode.resName);
            }
        }