【发布时间】:2021-02-04 13:54:31
【问题描述】:
我尝试从 url 下载资产包,但下载 63kb 后请求继续取消。谁能向我解释为什么会发生这种情况?
我的代码:
public IEnumerator DL()
{
string downloadlink = "https://drive.google.com/file/d/1OGyrB4-MQfo-HVom9ENvV4dn312_wL4Q/view?usp=sharing";
string filepath = Application.persistentDataPath + "/electroplatingNN";
//Download
UnityWebRequest dlreq = new UnityWebRequest(downloadlink);
dlreq.downloadHandler = new DownloadHandlerFile(filepath);
dlreq.timeout = 15;
UnityWebRequestAsyncOperation op = dlreq.SendWebRequest();
while (!op.isDone)
{
//here you can see download progress
Debug.Log(dlreq.downloadedBytes / 1000 + "KB");
yield return null;
}
if (dlreq.isNetworkError || dlreq.isHttpError)
{
Debug.Log(dlreq.error);
}
else
{
Debug.Log("download success");
}
dlreq.Dispose();
yield return null;
}
【问题讨论】:
-
您确定下载链接有效吗?我从未尝试过从 Google Drive 下载这样的文件,但如果您实际获得的是前端 HTML 的一部分而不是部分文件,我不会感到惊讶。我会尝试在直接路径下托管文件,甚至设置简单的 localhost 服务器来“托管”它。
-
在那之后你有什么错误吗?添加到@Bart 的评论:对于测试,您可以在本地文件路径上使用它。如果我在浏览器中输入 URL,它会将我转发到可以点击下载的页面……这不是下载本身!
-
我认为你必须使用正确的 api 从谷歌驱动器下载文件
标签: unity3d server unitywebrequest