我正在嘗試獲取從遠程服務器下載的資產大小。我試圖從http頭獲取內容大小,但是隻有當這個請求結束時我才能訪問它,否則我從www.GetResponseHeaders()函數收到null。我試圖使用DownloadHandlerAssetBundle處理程序,但無法獲取內容長度。如果我寫延伸DownloadHandlerScript自定義類,然後我就可以重寫此方法如何獲得UnityWebRequest.GetAssetBundle內容長度屬性?
protected void ReceiveContentLength(long contentLength);
但後來我失去DownloadHandlerAssetBundle方法。這是我目前使用的代碼:
www = UnityWebRequest.GetAssetBundle(url);
//DownloadHandlerAssetBundle handler = new DownloadHandlerAssetBundle(www.url, uint.MaxValue) ;
//www.downloadHandler = handler;
yield return www.Send();
if (www.isError)
{
Debug.Log(www.error);
}
else
{
AssetBundle bundle = ((DownloadHandlerAssetBundle)www.downloadHandler).assetBundle;
string[] scenePath = bundle.GetAllScenePaths();
...
}
這頁我用,當我試圖創建自定義downloadHandler https://unity.xiaomo.info/Manual/UnityWebRequest-CreatingDownloadHandlers.html
在更新,這是我如何獲得當前下載字節:
www.downloadedBytes
所以問題是,我怎樣才能獲得總資產規模。
感謝您的回覆。我正在嘗試獲取資產大小,以顯示您已經從y MB下載了x mb。我正在嘗試通知下載進度。我可以訪問進度浮點值,但是我想顯示下載資源的總大小。按照你的建議看來,我將不得不提出2個請求,一個請求提取資產大小,另一個請求提取資產本身。 Unity是否只有接收請求標題數據的方法,而不下載文件本身?另外我相信,LoadAssetAsync會加載已下載的資產,所以我在本地加載資產時會收到進展。 –
我發現如何獲取只有標題,與此:https://docs.unity3d.com/ScriptReference/Networking.UnityWebRequest.Head。html,所以我將要求標題,而不是資產本身,再次感謝您的幫助。 –