onEnable的生命周期

在UI管理上,UI被覆盖了,我就隐藏掉(active = false), 显示回来了就 active = true.
但是这个单纯的显示和隐藏都会走到onEnable和onDisable。
我的期望是:当UI从父级移除的时候才走到生命周期onEnable和onDisable,子节点内的父级是不会移除的(因为原本就在UI里面)

不知道有什么办法解决,或者是类似的生命周期

你把 onEnable / onDisable 里面的逻辑放到 判定里面去,判定去判断一下,ui 是否从父节点移除就行了

但是一些子节点是不会 移除父节点的,这好像不太好判断。
比如一个 页面关闭的时候是移除父节点,但是这个页面里面会有若干个组件,这些预制体是不保留在UI上的

onEnable的逻辑写到start里,onDisable的逻辑写到onDestroy里

start,onDestroy只运行一次呢,就是创建和销毁的时候。我是想添加父级和移除父级的时候执行的生命周期

this.node.off(NodeEvent.CHILD_ADDED, this._childAdded, this);
this.node.off(NodeEvent.CHILD_REMOVED, this._childRemoved, this);
2.x有事件 3.x就不晓得有没

NodeEventType.CHILD_REMOVED和NodeEventType.CHILD_ADDED
可以看看这个
https://docs.cocos.com/creator/3.8/api/zh/enumeration/NodeEventType?id=CHILD_ADDED

使用访问器,增加一个parent属性,修改该属性时执行修改父级节点的操作,同时执行相关逻辑。不熟悉可以问Ai或者百度js访问器

是有的,但是不完全行得通,这个方法只能处理 移除掉的那个UI页面,但是UI页面里面的同样会走到生命周期。
我打算在页面onEnble的时候,给UI设置寻找所属的UI预制体,当走到生命周期的时候,再判断这个UI预制体是否有父级