Awake与OnEnable的执行顺序问题。

        一直以为Awake与OnEnable的执行顺序是所有物体的Awake执行完成之后再执行所有物体的OnEnable,甚至当老师的时候也这么讲过,真是不知道做了多少误人子弟的事情。

        直到程序出问题了才发先Awake与OnEnable的执行顺序是这样的:对于物体的单个组件,肯定是Awake先执行,OnEnable后执行,但是对于多个物体,比如有三个物体A、B、C,那么执行顺序是先执行A的Awake,再执行A的OnEnable,然后执行B的Awake,B的OnEnable,最后执行C的Awake,C的OnEnable,所以A的OnEnable完全可以再B或者C的Awake之前执行。了解这样的情况之后,很多操作的错误就能明白问题所在了。比如在Awake方法中给单例赋值,不能认为在另外一个组件的OnEnable中一定可以使用这个单例。

猜你喜欢

转载自blog.csdn.net/ttod/article/details/131256620