假设A节点有个组件a,A节点下有个子组件B,B里有个组件b,我在a的onEnable里调用了一个b的函数fb,而fb里面用到了一个属性是在b的onLoad里初始化的,结果发现fb被调用的时候b根本还没走onLoad,也就是说b的onLoad竟然比a的onEnable还晚调用,这是官方所希望的么?
嗯是的,多个对象之间的 onLoad 和 onEnable 执行顺序并不保证,文档和 API 也没有这么说过。
只有 onLoad, start, update 等方法之间,在跨对象的时候调用才会保证先后顺序。
1赞
我出现过调了onEnable,没调用onLoad的情况,你敢信???
可能很老的版本的 bug?也有可能是节点激活过程中层级关系发生改变了,这在 1.10 开始会有警告的。如果你使用 1.9.3 仍然有 bug,欢迎提交一个 demo。
了解,当前是1.9.0,还未升级到1.10