/// <summary> /// 循环处理依赖关系 /// </summary> /// <param name="bundleNmae"></param> public void DisposeBundle(string bundleNmae) { Debug.Log(bundleNmae); if (loadHelper.ContainsKey(bundleNmae)) { IABRelationManager loader = loadHelper[bundleNmae]; List <string> depences = loader.GetDependence(); for (int i = 0; i < depences.Count; i++) { if (loadHelper.ContainsKey(depences[i])) { IABRelationManager dependce = loadHelper[depences[i]]; if (dependce.RemoveReference(bundleNmae)) { DisposeBundle(dependce.GetBundleName()); } } } if (loader.GetReference().Count <= 0) { loader.Dispose(); loadHelper.Remove(bundleNmae); } } else { Debug.Log("bundle is not exist ==" + bundleNmae); } }
public void DisposeAllBundle() { List <string> keys = new List <string>(); keys.AddRange(loadHelper.Keys); for (int i = 0; i < keys.Count; i++) { IABRelationManager loader = loadHelper[keys[i]]; loader.Dispose(); } loadHelper.Clear(); }