0
点赞
收藏
分享

微信扫一扫

VSCode集成Python环境搭建配置详细步骤

快乐小鱼儿_9911 2024-09-21 阅读 2

做直播游戏的时候,用到的头像都是在远程下载的,为了防止重复下载,可以把这些头像临时缓存下来。


    public void SetSprite(string _url, Transform _transform)
    {
        Debug.Log("url:" + _url);
        _transform.GetComponent<Image>().sprite = Resources.Load<Sprite>("UI/Item/acquiesce");
        if (!string.IsNullOrEmpty(_url))
        {
            if (sprDic.ContainsKey(_url))
                _transform.GetComponent<Image>().sprite = sprDic[_url];
            else
                StartCoroutine(DownSprite(_url, _transform));
        }
                       
    }


    IEnumerator DownSprite(string _url, Transform _transform)
    {
        using (UnityWebRequest _request = new UnityWebRequest(_url))
        {
            //下载图像作为纹理使用
            DownloadHandlerTexture texDl = new DownloadHandlerTexture(true);
            _request.downloadHandler = texDl;
            yield return _request.SendWebRequest();
            if (_request.result == UnityWebRequest.Result.ConnectionError)
            {
                Debug.LogError(_request.error);
            }
            else if (_transform != null)
            {
                Texture2D tex = new Texture2D(300, 300);
                tex = texDl.texture;
                Sprite sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f));
                _transform.GetComponent<Image>().sprite = sprite;
                if (!sprDic.ContainsKey(_url)) sprDic.Add(_url, sprite);
            }
        }        
    }

    public Dictionary<string, Sprite> sprDic = new Dictionary<string, Sprite>();

调用方法:

  /// <summary>
  /// 渲染头像框
  /// </summary>
  public void CreatSprite(Transform _tran,string _url)
  {
      Main.MainScript.SetSprite(_url, _tran);
  }
举报

相关推荐

0 条评论