Esempio n. 1
0
 static void InitSingleSpriteCache(this ImageLoaderComponent self, LruCache <string, SpriteValue> cache)
 {
     cache.SetCheckCanPopCallback((string key, SpriteValue value) => {
         return(value.ref_count == 0);
     });
     cache.SetPopCallback((key, value) => {
         ResourcesComponent.Instance.ReleaseAsset(value.asset);
         value.asset     = null;
         value.ref_count = 0;
     });
 }
Esempio n. 2
0
        static void InitSpriteAtlasCache(this ImageLoaderComponent self, LruCache <string, SpriteAtlasValue> cache)
        {
            cache.SetCheckCanPopCallback((string key, SpriteAtlasValue value) => {
                return(value.ref_count == 0);
            });

            cache.SetPopCallback((key, value) => {
                var subasset = value.subasset;
                foreach (var item in subasset)
                {
                    UnityEngine.Object.Destroy(item.Value.asset);
                    item.Value.asset     = null;
                    item.Value.ref_count = 0;
                }
                ResourcesComponent.Instance.ReleaseAsset(value.asset);
                value.asset     = null;
                value.ref_count = 0;
            });
        }