如果子Node节点active=false,那么,当父节点destroy的时候,子node不会调用onDestroy回调,感觉这个行为应该不符合预期
我觉得如果节点 active = false 的时候,其实也是游戏主观判断这个节点并不参与游戏渲染,不用触发 onDestroy 回调是可以接受的。
onDestroy预期不是资源释放吗?这个和是否参与渲染是不是应该分开?不可能onDisable就进行资源释放吧 
我觉得应该严格遵循生命周期这个概念,active=false 并不代表生命周期的结束
目前组件如果要触发 onDestroy 的话是需要 node.active = true 的。onLoad 和 onDestroy 是成对出现的。目前这是引擎的设计如此。
另外你提出的建议我提给引擎组同事看下。
这一点也赞同的。看到生命周期也会认为onDestroy就是释放的时候会被调用
辛苦辛苦。 
我也倾向于,onDestroy是基于对象逻辑被销毁 ,和渲染与否没有关系
请问你期望在 onDestroy 中执行什么代码操作?
资源释放,图集dec等操作
onLoad 是在第一次active = true时候调用的。如果没调过,理论上是不应该调用onDestory
啊,我一直以为节点不管active=true或false,都会触发onDestory。
如果active=false,不会触发,那不坑大发了,我注册了一些全局的监听事件,岂不是都没释放掉 
吓我一跳,我3.5试了,把active设为false,那个组件的onDestory能执行到的啊 
之前不是反馈过这个问题吗,是代码一开始new 出来的node的active就设置成false,并且不放进场景的时候不触发onLoad最后销毁的时候也不触发onDestroy,我如果没记错的话是这样的吧。如果node的active曾经有过true触发过onLoad,那么销毁的时候不管active是啥都会触发onDestroy
感觉这样比较合理
我刚才做了个测试,楼主说的onDestroy是在编辑器里将节点active置为false,然后在代码里从没有将active置为true,这样销毁时不会触发onDestroy倒也合理。只要在代码里将active修改过true后,再改回false,就还是能触发onDestroy。
真是吓我一跳 
我之前也被吓了一跳
其实真实情况对我来说也还好不算问题