Ejemplo n.º 1
0
    /// <summary>
    /// 删除图片(非强制删除)
    /// </summary>
    /// <param name="id"></param>
    /// <param name="size"></param>
    public void deleteImage(string id, TextureSize_state size)
    {
        //Debug.Log ("deleteImage   "+id);
        if (!imgList.ContainsKey(id))
        {
            Debug.LogError(imgList.Count + "====deleteImage ERROR" + id);
            return;
        }
        Image_info info = imgList[id];

        if (info == null)
        {
            Debug.LogError("deleteImage ERROR");
            return;
        }

        //如果缓存中有图片,则删除该图片不继续加载
        if (iList.Contains(info))
        {
            iList.Remove(info);
        }

        info.stateIndex[(int)size]--;
        if (info.stateIndex[(int)size] < 0)
        {
            Debug.LogError("deleteImage ERROR 引用计数溢出");
        }

        //如果所有计数均为0,则删除该图片
        int max = 0;

        for (int i = 0; i < info.stateIndex.Length; i++)
        {
            max += info.stateIndex[i];
        }
        if (max <= 0)
        {
            imgList.Remove(id);
            Resources.UnloadUnusedAssets();
        }
    }
Ejemplo n.º 2
0
 public void loadImage(string id, TextureSize_state size, Callback <Texture2D> fun, bool isFistLoad = false)
 {
     if (imgList.ContainsKey(id))
     {
         Image_info info = imgList[id];
         info.isError = "null";
         info.site    = "null";
         info.fun     = fun;
         //如果有小图,则删除小图,加载大图
         if ((int)imgList[id].state > (int)size)
         {
             info.state = size;
             info.stateIndex[(int)size]++;
             listAddImg(info, isFistLoad);
             listLoadImg();
         }
         //否则记数加1,然后返回图片
         else
         {
             info.stateIndex[(int)size]++;
             fun(imgList[id].tex);
         }
     }
     else
     {
         //请求本地是否有该图片
         Image_info info = new Image_info();
         info.isError = "null";
         info.site    = "null";
         info.tex     = new Texture2D(0, 0);
         info.key     = id;
         info.state   = size;
         info.stateIndex[(int)size] = 1;
         info.fun = fun;
         imgList.Add(id, info);
         listAddImg(info, isFistLoad);
         listLoadImg();
     }
 }
Ejemplo n.º 3
0
    private static string getSizeString(TextureSize_state size)
    {
        switch (size)
        {
        case TextureSize_state.Texture_raw:
            return("");

        case TextureSize_state.Texture_big:
            return("!imysky-style-adaptiveh-360w-90q");

        case TextureSize_state.Texture_centre:
            return("!imysky-style-adaptiveh-180w-90q");

        case TextureSize_state.Texture_little:
            return("imysky-style-adaptiveh-100w-90q");

        case TextureSize_state.Texture_tiny:
            return("!imysky-style-adaptiveh-40w-90q");

        default:
            return(null);
        }
    }