父结点在 onLoad() 设定 active=false 子结点的 onLoad() 不会跑道是正确的吗?
因为 Unity 如果 gameObject 是从父结点的 Awake() 才关闭的话,child的 Awake() 还是会跑到的,除非场景一开始 父结点gameObject 就是 关闭的状态才不会跑起来
1赞
没有看到主题
你的问题的答案是,creator的执行顺序是先执行父节点的onLoad,然后执行子节点的onLoad,所以父节点在onLoad的时候active = false的话,父节点和所有子节点都不再被引擎主动调用,所以子节点的onLoad不会执行
以上是我测试过后的个人看法
目前 Creator 是这样设计的。我不太认为父节点应该在子节点之后初始化,就像父节点不应该在子节点销毁前销毁一样。
如果你有更多看法欢迎提出来!
有没有在父节点加载的时候,手动加载隐藏子节点的api
如果onLoad在Active以后再执行,那直接用onEnable就好了,还要onLoad做什么呢?
onLoad明明就是照着Unity的Awake来的,但细节上的机制又不同。好坑!