public void ReleaseResourceObjects(ResourceObject[] resobjs)
 {
     if (resobjs != null)
     {
         int i = 0;
         for (int num = resobjs.Length; i < num; i++)
         {
             ResourceObject resobj = resobjs[i];
             if (resobj != null)
             {
                 resobj.refCount--;
                 if (resobj.refCount == 0)
                 {
                     resobj.obj = null;
                     if (objectCaches[(int)resobj.category] != null && objectCaches[(int)resobj.category].Get(resobj.name) != null)
                     {
                         objectCaches[(int)resobj.category].Remove(resobj.name);
                     }
                     PackageObject pakobj = resobj.package;
                     if (pakobj != null)
                     {
                         ReleasePackageObjects(pakobj.linkPackages);
                         ReleasePackageObject(ref pakobj);
                     }
                     ResourceObject.Release(ref resobj);
                     RequestUnloadUnusedAssets();
                 }
             }
         }
     }
 }
 public void ClearObjectCaches(RESOURCE_CATEGORY[] categories)
 {
     if (objectCaches != null && categories != null)
     {
         List <string> releasedObjNames = new List <string>();
         int           i = 0;
         for (int num = categories.Length; i < num; i++)
         {
             int num2 = (int)categories[i];
             releasedObjNames.Clear();
             if (objectCaches[num2] != null)
             {
                 objectCaches[num2].ForEach(delegate(ResourceObject o)
                 {
                     if (!IgnoreCategorySpecifiedReleaseList.Contains(o.name))
                     {
                         releasedObjNames.Add(o.name);
                         ResourceObject.Release(ref o);
                     }
                 });
                 int j = 0;
                 for (int count = releasedObjNames.Count; j < count; j++)
                 {
                     objectCaches[num2].Remove(releasedObjNames[j]);
                 }
             }
         }
     }
 }
 public void ClearObjectCaches(bool clearPreloaded)
 {
     if (MonoBehaviourSingleton <InGameManager> .IsValid() && MonoBehaviourSingleton <InGameManager> .I.selfCacheObject != null)
     {
         MonoBehaviourSingleton <InGameManager> .I.DestroySelfCache();
     }
     if (IgnoreCategorySpecifiedReleaseList != null)
     {
         IgnoreCategorySpecifiedReleaseList.Clear();
     }
     if (clearPreloaded && PreloadedInGameResouces != null)
     {
         PreloadedInGameResouces.Clear();
     }
     if (objectCaches != null)
     {
         if (clearPreloaded)
         {
             int i = 0;
             for (int num = objectCaches.Length; i < num; i++)
             {
                 if (objectCaches[i] != null)
                 {
                     objectCaches[i].ForEach(delegate(ResourceObject o)
                     {
                         ResourceObject.Release(ref o);
                     });
                     objectCaches[i].Clear();
                 }
             }
         }
         else
         {
             List <string> releasedObjNames = new List <string>();
             int           j = 0;
             for (int num2 = objectCaches.Length; j < num2; j++)
             {
                 releasedObjNames.Clear();
                 if (objectCaches[j] != null)
                 {
                     objectCaches[j].ForEach(delegate(ResourceObject o)
                     {
                         if (!PreloadedInGameResouces.Contains(o.name))
                         {
                             releasedObjNames.Add(o.name);
                             ResourceObject.Release(ref o);
                         }
                     });
                     int k = 0;
                     for (int count = releasedObjNames.Count; k < count; k++)
                     {
                         objectCaches[j].Remove(releasedObjNames[k]);
                     }
                 }
             }
         }
     }
 }