| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | using System;using System.Collections;using System.Collections.Generic;using System.IO;using System.Net;using System.Net.Http;using ET;using UnityEngine;using UnityEngine.Networking;namespace GFGGame{    public static class PictureStorageHelper    {        //获取图片的临时上传地址协议        public static async ETTask<string[]> ReqTempPictureUrl(int pictureType)        {            ViewManager.Show<ModalStatusView>("上传中...");            S2C_GetTempPictureUrl response = null;            response = (S2C_GetTempPictureUrl)await MessageHelper.SendToServer(new C2S_GetTempPictureUrl() { PictureType = pictureType });            if (response != null)            {                if (response.Error == ErrorCode.ERR_Success)                {                    return new string[] { response.TempPictureUrl, response.PictureObjectPath };                }            }            else            {                ViewManager.Hide<ModalStatusView>();                PromptController.Instance.ShowFloatTextPrompt("获取上传地址失败");            }            return null;        }        //将图片上传到华为云        public static async ETTask<bool> PushToHWCloud(string signUrl, byte[] buffer)        {            HttpContent content = new ByteArrayContent(buffer);            HttpClient httpClient = new HttpClient(new HttpClientHandler() { UseCookies = false });            HttpResponseMessage response = await httpClient.PutAsync(signUrl, content);            response.EnsureSuccessStatusCode();            await response.Content.ReadAsStreamAsync();            if (response.StatusCode != HttpStatusCode.OK)            {                ViewManager.Hide<ModalStatusView>();                PromptController.Instance.ShowFloatTextPrompt("上传资源失败");                return false;            }            else            {                return true;            }        }        public static IEnumerator DownloadFile(string pictureTempUrl, Action<Texture2D> callback)        {            using (UnityWebRequest request = UnityWebRequestTexture.GetTexture(pictureTempUrl))            {                yield return request.SendWebRequest();                if (request.result == UnityWebRequest.Result.ProtocolError || request.result == UnityWebRequest.Result.ConnectionError)                {                    ET.Log.Debug("Error: " + request.error);                    DownloadFile(pictureTempUrl, callback);                    // yield return null;                }                else                {                    Texture2D texture = (request.downloadHandler as DownloadHandlerTexture).texture;                    callback(texture);                }            }        }    }}
 |