关于Cocos Creator内存释放的问题

使用cc.loader.loadRes加载了本地的Prefab后,使用cc.loader.getDependsRecursivelydestroy释放。但是发现内存并没有释放。

请问下cocos creator关于动态创建prefab后应该如何正确的释放内存。

同样遇到这个问题!

有大神知道的吗

这个不是释放内存啊,这个只是释放资源。

另外,为什么要 this.node.destroy()?这样会把你挂这个脚本的节点销毁的。

遇到同样问题,官方也一直没有解释.

现在是动态创建出prefab,后要销毁它,并回收内存。
请问应该如何操作

你先确认 this.node 是什么啊。。。

你现在是想销毁这个 prefab,但你这个操作是销毁 this.node

this.node是通过prefab创建出来的

额,我还是没看懂this.node是怎么来的。。

我直接贴代码吧

`cc.Class({
extends: cc.Component,

properties: {
    btn1:{   //添加按钮
        default:null,
        type:cc.Button
    },
    btn2:{  //关闭按钮
        default:null,
        type:cc.Button
    }
},

// use this for initialization
onLoad: function () {
    this.btn1.node.on('click',this.CreatePanel,this);
    this.btn2.node.on('click',this.ClosePanel,this);
},

CreatePanel: function () {
    var scene = cc.director.getScene();
    cc.loader.loadRes("UI/pf", function (err, prefab) {
        var pf = cc.instantiate(prefab);
        pf.parent = scene;
        pf.position = cc.v2(300,300)
    });
},

ClosePanel: function () {
    
    if(cc.director.getScene().getChildByName("pf")){
        cc.director.getScene().getChildByName("pf").removeFromParent(true);
        var deps = cc.loader.getDependsRecursively('UI/pf');
        cc.loader.release(deps); 

        this.scheduleOnce(function(){ //5秒后 强行释放内存
            cc.sys.garbageCollect();
        },5)
        
    }
    
},

});
`

同问,官方没解释

他释放资源后,内存释放是有延时性的,如果想要马上释放需要自己手动。
后面那段 5秒后 强行释放内存 就是。

非常感谢,翻了墙之后查到了,
强制调用cc.sys.garbageCollect();