Unity中使用C#的WebClient的DownloadFileAsync异步回调不执行
程序员文章站
2022-05-06 17:15:32
...
在开发时遇到了一个很奇怪的问题,使用WebClient来异步下载远程资源,并且使用了WebClient的两个异步回调方法DownloadProgressChanged和DownloadFileCompleted。在Unity编辑器中,两个异步回调方法可以正常执行,当打包后发现,两个异步回调方法根本不会执行,比较神奇的是远程文件居然下载了下来。
通过无数次踩坑,发现是.net版本影响的。见下图:
代码如下:
void Start()
{
downloader = new Downloader(assetName, downloadUrl, savePath);
downloadBtn.onClick.AddListener(DownlodClick);
}
private void DownlodClick()
{
downloader.DownloadFileAsync(progress => { }, status =>
{
var result = (Downloader.DownloadResult)status;
Debug.Log("download status:" + result);
});
}
private WebClient client;
private Action<float> progressHandler;