关于内存释放
1. 正常调用UnityWebRequest下载文件,下载完成后不会释放内存;
2. 单独调用Dispose()也无法释放内存;
3. 使用Using方法可以释放内存
using (UnityWebRequest www = UnityWebRequest.Get(path))
{
www.timeout = 2;
www.downloadHandler = new DownloadHandlerBuffer();
var operation= www.SendWebRequest();
while (!operation.isDone)
{
onProgress?.Invoke(operation.progress);
yield return null;
}
if (!string.IsNullOrEmpty(www.error))
{
onError?.Invoke(www.error);
yield break;
}
onComplete?.Invoke();
}
关于下载过程中最大内存占用
使用DownloadHandlerBuffer作为下载器,下载过程最大内存分配为2*下载大小,第一份是下载的文件内容,第二份是使用