/// <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); }
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); }