脚本组件如果是调用this.node.removeFromParent,不会回调ondestroy

版本:1.4.2
平台:web/windows
脚本组件如果是调用this.node.removeFromParent(true)删除本节点及其子节点,脚本组件只能调用到onDisable,没回调ondestroy,这个是不是个bug,或者说有其他方式删除node能回调到ondestroy?没回调到ondestroy是不是会引起内存泄露?

这个问题我很早就提过,官方回答调用remove不会destroy,要destroy就手动掉destroy,使用习惯了2dx,感觉这里处理的很奇怪。

谢谢楼上,那在creator里正确的删除是什么方法呢?我查询了api文档好像没找到。不应该每次手动删除node,都要手动destroy一次组件吧。难道真的设计如此?

看起来是要直接destroy不用remove。晚点试试看。

有时候把某个节点removeFromParent后并不是想删除这个节点,有可能还想把这个节点加到其它节点上去。因此removeFromParent不是destroy的充分条件。另外切换场景的时候引擎会把场景节点destroy掉的(包括所有子节点)。

楼上正解,另外

怎么可能这样设计呢?当然是你 node.destroy() 时,组件也会自动 destroy