Unity3d之MonoBehavior自带方法的执行顺序

首先贴一张图(从其他地方摘录的,不记得出处,如果有小伙伴知道可以评论留言)

看了以后脑子有个大概的概念,可还是一知半解的感觉(接触Unity也有2年之久,却从来没想过弄清楚心中这团迷雾,总是囫囵吞枣用了再说;因此做游戏的时候总会碰到一些意想不到的错误,今天就彻底把它给理一理)

  • Awake(): 仅在 gameobject Active=true 时执行;在实例的整个生命周期中,仅执行一次;
  • Start():仅在 gameobject Active=true 且 gameobject 的脚本 Enable=true时执行;也是仅执行一次,之后无论 enable 如何变化都不会执行;
  • OnEnable():脚本每次 enable=true 时执行;可以看到图中enable的执行顺序是在start前面的,当游戏启动时,执行顺序如下
  • OnDisable():脚本每次 enable=false 时执行;
  • OnDestroy():物体销毁时执行;与disable的关系
  • 协程:在 update 之后,lateUpdate 之前执行

写了一个小 demo 测试执行顺序,有需要可以点击链接下载试一下demo

原文地址:https://www.cnblogs.com/ninomiya/p/9246199.html