怎么判断节点被删掉了

            var nodeTest = new cc.Node();
            nodeTest.parent = cc.director.getScene();

nodeTest.isValid 无法判断nodeTest.removeFromParent(true); ,被删了后还是true?

nodeTest.destroy();再用nodeTest.isValid 是可以判断的

cc.isVolid(node,true)

2B63C1B96129542EE694F10507185FE4

这个测试还是true,我最后用.parent != null 判断了。。。。

这样节点应该没有删除只是不在节点树中

nodeTest.removeFromParent(true);
一般不太用的到吧。除非这个节点是对象池里的后面还要复用它之类的情况。

https://docs.cocos.com/creator/3.8/manual/zh/scripting/create-destroy.html#destroy-和-removefromparent-的区别
image

image

creator看了destroy = removeFromParent(true); 然后removeFromParent没参数了(删除removeFromParent仅是把父节点重置为null),所以我删除的地方都加了destroy,但我测试destroy之前的主场景

            cc.director.getScene().removeFromParent();
            cc.director.getScene().destroy();
            director.runSceneImmediate(newScene)

之前插入的单个node isValid仍为true呢?那岂不是有内存泄漏

你就正常访问,然后查看访问不存在的节点是什么报错,在代码位置添加异常判断即可

不好意思刚看到。 你这个是销毁场景? 没怎么测试过。

你看看 文档, 里面资源要自动回收 需要scene勾一个 自动释放asset的:
https://docs.cocos.com/creator/3.8/manual/zh/asset/scene.html#切换场景

removeFromParent() 是本帧移除
destroy() 会在下一帧移除。所以,如果节点需要在本帧移除的话,那得
this.node.removeFromParent();
this.node.destroy()