示例#1
0
    public void LoadIcon(string strName, UITexture tex)
    {
        if (string.IsNullOrEmpty(strName) || null == tex)
        {
            return;
        }

        HeadIconLoaderItem Data = GetLoaderItem(strName);

        if (null == Data)
        {
            Data           = new HeadIconLoaderItem();
            Data.m_strName = strName;
            Data.m_Tex     = null;
            Data.m_nRef    = 1;
            Data.lstUITexture.Add(tex);
            m_lstLoaderItem.Add(Data);
        }
        else
        {
            Data.m_nRef++;
            if (null == Data.m_Tex)
            {
                Data.lstUITexture.Add(tex);
            }
            else
            {
                Data.Flush(tex);
                return;
            }
        }
        IconAssetMgr.LoadAsset(strName, ParamData.Empty);
    }
示例#2
0
    static public void LoadIconCallBack(AssetBundle AssetData, ParamData paramData)
    {
        if (null == paramData || null == AssetData || null == AssetData.mainAsset)
        {
            IconAssetMgr.DeleteAsset(AssetData, true);
            return;
        }

        Texture2D Tex2D = AssetData.mainAsset as Texture2D;

        if (null == Tex2D)
        {
            IconAssetMgr.DeleteAsset(AssetData, true);
            return;
        }

        HeadIconLoaderItem Item = HeadIconLoader.Instance.GetLoaderItem(paramData.szAssetName);

        if (null == Item)
        {
            IconAssetMgr.DeleteAsset(AssetData, true);
            return;
        }

        Item.m_AssetData = AssetData;
        Item.m_Tex       = Tex2D;
        Item.m_Tex.name  = paramData.szAssetName;
        Item.FlushAll();
        IconAssetMgr.DeleteAsset(AssetData, false);
    }
示例#3
0
    public void Delete(string strName)
    {
        HeadIconLoaderItem item = GetLoaderItem(strName);

        if (null == item)
        {
            return;
        }

        item.m_nRef--;

        for (int iLoop = 0; iLoop < item.lstUITexture.Count; ++iLoop)
        {
            if (null == item.lstUITexture[iLoop])
            {
                continue;
            }

            if (item.lstUITexture[iLoop].name == strName)
            {
                item.lstUITexture.RemoveAt(iLoop);
                break;
            }
        }

        if (item.m_nRef <= 0)
        {
            item.Delete();
            m_lstLoaderItem.Remove(item);
        }
    }