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(); } }
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); } }