Пример #1
0
 /// <summary>
 /// 下载图片
 /// </summary>
 /// <param name="url">请求的链接</param>
 /// <param name="action">发生的事件</param>
 /// <param name="method">请求的方式</param>
 /// <returns></returns>
 public static bool DownaloadSprite(string url, RequestSpriteEvent action, string method = UnityWebRequest.kHttpVerbGET)
 {
     if (IsNull(url, action, action.action))
     {
         return(true);
     }
     Instance.StartCoroutine(Instance.DownloadSpriteIEnumerator(url, method, action));
     return(false);
 }
Пример #2
0
    IEnumerator DownloadSpriteIEnumerator(string url, string method, RequestSpriteEvent action)
    {
        var request = new UnityWebRequest(url, method);
        var texDl   = new DownloadHandlerTexture(true);

        request.downloadHandler = texDl;
        if (action.downloadProgress != null)
        {
            StartCoroutine(DownloadProgress(request, action.downloadProgress));
        }

        yield return(request.SendWebRequest());

        Dispose(request, () =>
        {
            Texture2D t = texDl.texture;
            action.action(Sprite.Create(t, new Rect(0, 0, t.width, t.height), Vector2.zero, 1f), texDl.data);
        }, action.error, action.error404, action.error500);
    }