示例#1
0
        static async Task setImage(WaitSetData waitSetData)
        {
            try
            {
                Sprite sprite = null;

                if (waitSetData.m_head.Length < 10)
                {
                    sprite = CommonUtil.getSpriteByBundle("playericon", waitSetData.m_head);
                }
                else
                {
                    for (int i = 0; i < m_netHeadList.Count; i++)
                    {
                        if (m_netHeadList[i].m_url.CompareTo(waitSetData.m_head) == 0)
                        {
                            Log.Debug("使用缓存头像");
                            sprite = m_netHeadList[i].m_sprite;
                            break;
                        }
                    }

                    if (sprite == null)
                    {
                        Log.Debug("下载头像");
                        sprite = await CommonUtil.GetTextureFromUrl(waitSetData.m_head);

                        m_netHeadList.Add(new NetHeadData(waitSetData.m_head, sprite));
                    }
                }

                if (waitSetData.m_img != null)
                {
                    waitSetData.m_img.sprite = sprite;
                }
                else
                {
                    Log.Debug("头像Image为空");
                }

                {
                    m_waitSetDataList.Remove(waitSetData);
                    if (m_waitSetDataList.Count > 0)
                    {
                        await setImage(m_waitSetDataList[0]);
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Debug("HeadManager.setImage异常:" + ex);

                {
                    m_waitSetDataList.Remove(waitSetData);
                    if (m_waitSetDataList.Count > 0)
                    {
                        await setImage(m_waitSetDataList[0]);
                    }
                }
            }
        }