1.最近的项目中,在修改公司之前的项目将其打出Webgl后发现内存溢出了,但是在Editor里没有这个现象,继续在Editor里,发现果然这个项目内存越占越多,如下图所示:
2.打开Unity的Profiler,选择Memory,运行项目,果然此项目一直在创建Texture,如下图所示。
3.找了一会儿,发现是点击翻页按钮时,占用的内存一直在增加,于是查看这个按钮的代码,果然发现了问题,方法里竟然在一直创建Texture,而且不做回收内存的处理,真不知道之前的开发人员是怎么开发的,而且这么简单的翻页功能要做这么复杂,代码如下:
public void NextStep() {
if (nowStep < steps.Length-1 && nowstepNum > 0) {
nowStep++;
nowstepNum--;
if (nowStep == 4 || nowStep == 10) {
cover.enabled = false; }
if (nowStep == 8 || nowStep == 22) {
cover.enabled = true; }
//steps[nowStep]
//改变提示文字
hint.text = steps[refSteps[nowStep]].hintText;
//更换当前步骤各个窗口的图片
if (steps[refSteps[nowStep]].bgImageAsset.Length > 0) {
for (int i = 0; i < steps[refSteps[nowStep