关于内存释放
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*下载大小,第一份是下载的文件内容,第二份是使用

本文探讨UnityWebRequest在下载过程中导致的内存占用问题。通过分析,发现最大内存分配为下载大小的两倍,原因是DownloadHandlerBuffer的深拷贝操作。提出了自定义DownloadHandlerScript来优化内存使用的解决方案。
最低0.47元/天 解锁文章
1519

被折叠的 条评论
为什么被折叠?



