返回「计算机、信息技术与工程」

关于resource.unloadasset()资源卸载疑问

更多
Markdown 结构化数据
本文目录 3 个章节

关于resource.unloadasset()资源卸载疑问

note · 我的 UWA 问答 本文收录我在 UWA 问答发表的公开回答。问题内容归原提问者;回答保留当时语境,技术结论可能受 Unity 版本、平台和项目条件限制。

问题

在pc端使用Profiler,加载了一张图片,然后使用resource.unloadasset()卸载该图片,profiler里面还是留有这张图片的内存,但是如果我在使用unloadasset方法之后再使用UnloadUnusedAssets方法profiler中改资源内存被清除了,

Snipaste_20210811_200616.png

Snipaste_2021-08-11_20-06-16.png

Snipaste_20210811_200629.png

Snipaste_2021-08-11_20-06-29.png

Snipaste_20210811_200556.png

Snipaste_2021-08-11_20-05-56.png 第三张图是图片引用被清除了,不知道为啥内存中还占用着,一定要使用UnloadUnusedAssets方法吗

  • 提问者:萧肖
  • 提问时间:2021-08-12 04:08:56

我的回答

所以题主是想要卸载Sprite,但是不卸载Texture吗。这样的诉求应该是不太合理的,占用内存的是Texture,Sprite是Texture上的一小块,实际上Sprite组件存的就是它在Texture上的偏移位置,几个数字,组件本身内存占用是很低的,卸载的意义不大。从资源管理的角度就是要卸载Texture。而texture确实存在被多个Sprite引用的问题,所以直接卸载也不合适,那么就等所有的Sprite都清除了再卸载Texture就好了。

  • 回答时间:2021-08-13 20:04:40
  • 最后更新:2021-08-13 20:04:40
  • 采纳状态:未采纳

来源与关系