コード例 #1
0
    // 自动检查卸载点资源包
    // 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]);
        }
    }
コード例 #2
0
 // 卸载全部包
 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();
 }