3.6.3脚本触发onDestroy时,子节点已经被销毁了

如题,这应该是个BUG吧?

@EndEvil @Yuan2333 @shrinktofit

最近都看不到cocos官方的人了

人工置顶~

设计如此。

的确,设计如此。非bug

你可以看源码 destory的时候 也会移除子节点的监听事件

哦,是不是2.x也这样,难道是我记错了,我同事问我这样为什么会报错,我还跟他说不应该呢,取消监听的逻辑我已经给他删了,那就是决不允许在onDestroy操作子节点的逻辑呗

官方建议在 onEnable 注册监听, 在 onDisable移除监听。

子节点都销毁了,操作它干嘛?

底层设计就是这样

  1. 父节点销毁操作里面,会遍历销毁子节点,然后子节点继续执行该操作,形成递归链。
  2. 组件onDestroy执行之后,引擎会把组件上面的所有对象、函数、字符串类型属性设为null