版本: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