// 加载依赖关系的包 和 LoadAssetBundle 形成递归 private IEnumerator LoadAssetBundleDepedencies(string bundleName, string refName, LoadProgress loadProgress) { if (!loadHelper.ContainsKey(bundleName)) // 不存在包 // 创建依赖关系管理 { IABRelationManager relationMgr = new IABRelationManager(); relationMgr.Initialize(bundleName, loadProgress); if (refName != null) { relationMgr.AddReference(refName); } // 保存 loadHelper.Add(bundleName, relationMgr); // 加载包 yield return(LoadAssetBundle(bundleName)); } else // 存在包 // 添加依赖关系 { if (refName != null) { IABRelationManager loader = loadHelper[bundleName]; loader.AddReference(refName); } } }
public IEnumerator LoadAssetBundleDependences(string bundleName, string refName, LoaderProgrecess progreces) { if (loadHelper.ContainsKey(bundleName)) { IABRelationManager loader = new IABRelationManager(); loader.Initial(bundleName, progreces); if (refName != null) { loader.AddReference(refName); } loadHelper.Add(bundleName, loader); yield return(LoadAssetBundles(bundleName)); } else { if (refName != null) { IABRelationManager loader = loadHelper[bundleName]; loader.AddReference(bundleName); } } }
public IEnumerator LoadAssetBundleDependences(string bundlePath, string refName, LoaderProgress progress) { if (!mABRelationDict.ContainsKey(bundlePath)) { IABRelationManager iABRelation = new IABRelationManager(); iABRelation.Initial(bundlePath, progress); //记录被依赖对象 if (refName != null) { iABRelation.AddReference(refName); } mABRelationDict.Add(bundlePath, iABRelation); yield return(LoadAssetBundles(bundlePath)); } else { if (refName != null) { IABRelationManager iABRelationManager = mABRelationDict[bundlePath]; iABRelationManager.AddReference(bundlePath); } } }