// 自动检查卸载点资源包 // UI 资源暂时不卸载 // 已经加载但是还有缓存资源没有加载点不进行卸载 // 正在加载点资源也不进行卸载 private static void CheckUnloadPackage() { List <string> unloadPackageList = new List <string>(); using (var i = _packageCacheDic.GetEnumerator()) { RGPackage package = null; while (i.MoveNext()) { package = i.Current.Value; if (package != null) { if (package.IsLoadPackage) { if (!package.IsCacheNeedLoad) { if (!package.IsUI && package.IsAutoRelease && !package.IsForverBundle) { RGLog.DebugResLoad("<color=red> Auto Unload bundle</color> -> {0}", package.PackageName); package.UnloadAll();; unloadPackageList.Add(package.PackageName); } } } } } } for (int i = 0; i < unloadPackageList.Count; i++) { _packageCacheDic.Remove(unloadPackageList[i]); } }
// 卸载全部包 public static void UnloadAll() { using (var i = _packageCacheDic.GetEnumerator()) { RGPackage package = null; while (i.MoveNext()) { package = i.Current.Value; if (package != null) { package.UnloadAll(); } } } _packageCacheDic.Clear(); }