unity不断创建 texturt 最后导致内存不足 webgl

unity不断创建 texturt 最后导致内存不足 webgl

问题出现以及解决过程

最近的webgl项目中,将程序修改之后,打包出去的webgl程序出现了内存溢出问题,在Editor中没有出现这样的情况。在editor中运行时查看profiler,发现占有内存在不断增大,仔细查看是Textures的数量在不断增加,导致其使用内存增大。
在这里插入图片描述
于是在运行的时候,通过将各个gameobject设置为Inactive,找到了问题来源的gameobject。
在这里插入图片描述

查看了其执行的代码后,发现是在update函数中不断创建使用新的texture而没有释放旧的已创建的texture,最终优化了函数,解决了这样的内存溢出问题。

总结

在遇到此类在运行一段时候之后报错 内存不足 时,可以尝试先查看Profiler,查看是哪一个部分出现了累加的无用资源,然后通过在运行时修改Gameobject的active,来定位具体是哪一个模块在重复创建资源,再定位对应的代码,最后修改代码即可。
如果是一开始就无法运行的情况,则需要优化,将运行时的所需的内存降低至2GB以下。

日期

2023.05.06

猜你喜欢

转载自blog.csdn.net/wjm_hmj/article/details/130523980