UWA社区主页:community.uwa4d.com
UWA QQ群:793972859
为什么Profiler中看到的纹理内存比实际占用大
为什么Hidden Shader占用两份内存开销
在Destroy前,需要把所有Texture引用都释放掉吗
ManagedHeap.UsedSize占用内存过大问题
Q2:但是我们的项目就只有PC的,如何做真机测试呢?
比如说两份UberPost,看起来没有Editor:
或者说有没有可能是因为加载了两次PostProcessData导致的?因为我看两份占用中每份都会引用一个PostProcessData。
A:可以检查下是否在Graphics-Always Included Shaders中有一份或者首场景有对象引用,然后又从AssetBundle里加载了一份。
Q2:那他不会因为还有引用而导致Destroy失败吗?
A2:可以Destroy一个还在显示的试试看。
是不是在还有引用计数的情况下,最后Destroy会失败?
Q4:我们没有本地Asset,都是通过数据加载实例化出来的,Material、Texture、Mesh都是实例化出来的,所以这三个我都要Destroy掉吗?
A4:如果你是Prefab这种实例化出来,只要Mat你没有修改过,或者你引用过导致他实例化出来,那你就不用单独Destroy,如果你Mat是new出来的,你肯定要Destroy。
感谢小波@UWA问答社区提供了回答
Q5:所以如果我只要Destroy贴图没有Destroy Mat,那我的贴图就不会被Destroy成功吗?
A5:可以在new Texture的地方包装一个CreateTexture的自定义方法,在里面自己记录下创建tex的数量,Destroy的地方也是包装一个DestroyTexture方法,减少tex的数量,这里需要看下全部Destroy之后数量是不是归零了,因为有可能你销毁的数量没有创建的数量多,也有可能你前面刚Destroy掉,后面又给new出来了。
Q:项目这部分内存占用这么大怎么办?
连接工程可定位到堆内存对象的引用链信息,更有助于精准定位到问题。
今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。
UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859
(长按识别二维码进入UWA问答)
点击下方名片关注我们,将我设为星标,及时接收小编每日推送哦,性能优化不迷路~
近期精彩回顾
【厚积薄发】Unity版本使用情况统计(更新至2024年11月)
【学堂上新】基于.NetCore开发MMORPG分布式游戏服务器