日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

unity下载文件三(http异步下载)

發(fā)布時間:2025/4/14 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unity下载文件三(http异步下载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

異步下載,顧名思義就是不影響你主線程使用客戶端的時候,人家在后臺搞你的明堂。

直接入主題,既然要下載,首先得請求,請求成功之后進行回調,這就是一個異步過程,異步回調的時間不可控。

1、首先請求下載。

public bool DownLoadFile(DownLoadFileModel file){try{HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://192.168.1.1:8080/" + file.FileName);
       //DownLoadFileModel 為我自己定義的一個實體類,文件名需要帶后綴名
file.request = request;//實體類中將http的請求信息也帶進去了,方便回調中的判斷
request.BeginGetResponse(new AsyncCallback(ResponseCallbackDownLoad), file);//ResponseCallbackDownLoad請求成功后的回調方法return true;}catch {return false;}}

  2、請求成功之后就會去調用ResponseCallbackDownLoad方法,這個方法是異步的,是在子線程里執(zhí)行,如果在消息者模式下在這個回調里面發(fā)送監(jiān)聽到主線程,再操作GameObject對象就會報錯,或者直接調用主線程的GameObject也會報錯,至于怎么去獲取這個下載的信息并操作界面,我想這個我想我就不用多說了。不多說了,上回調代碼,回調代碼是在子線程里執(zhí)行。

private void ResponseCallbackDownLoad(IAsyncResult ar){//throw new NotImplementedException();try{object req = ar.AsyncState as object;;if (req == null) return;DownLoadFileModel file = ar.AsyncState as DownLoadFileModel;//獲取異步下載的請求的相關信息,以便判斷HttpWebResponse response = file.request.EndGetResponse(ar) as HttpWebResponse;if (response.StatusCode != HttpStatusCode.OK){response.Close();return;}Stream outStream;Stream inStream = response.GetResponseStream();byte[] b = new byte[1024];FileInfo fi = new FileInfo(Application.persistentDataPath+ "//" + file.SaveName);if (fi.Exists){//TODO如果文件件存在,TODO }else //else如果該文件不存在{try{int readCount = inStream.Read(b, 0, b.Length);outStream = fi.Create();long fileLength = response.ContentLength;//獲取文件總長度long fileSize = 0;//已下載的文件長度while (readCount > 0){outStream.Write(b, 0, readCount);fileSize += readCount;int progress = (int)(((float)fileSize / (float)fileLength) * 100);//progress 為計算下載的百分比readCount = inStream.Read(b, 0, b.Length);}outStream.Close();inStream.Close();response.Close();}}catch (Exception ex){}}}catch (Exception ex){Debug.Log("文件下載失敗" + ex.Message);}} }

  

?

轉載于:https://www.cnblogs.com/vsirWaiter/p/5377788.html

總結

以上是生活随笔為你收集整理的unity下载文件三(http异步下载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。