探究Unity代码的执行顺序(1)

今天在写代码的时候,动态加载了一个游戏物体(游戏物体上挂载了一个脚本),突然想到一个问题,即代码的执行顺序。
动态加载游戏物体的那段代码并没有继承自MonoBehaviour。为了简单起见,动态加载游戏物体的那段代码叫做A代码。挂载在游戏物体上的那个脚本叫做B脚本。
那么A代码之后的那些代码和B脚本中的代码执行的顺序是怎么样呢?
这是在A代码之后的代码
探究Unity代码的执行顺序(1)
一个简单的循环。
这是测试结果:
探究Unity代码的执行顺序(1)

根据结果我们可以知道,当我们加载游戏物体时,游戏物体挂载的B脚本中的Awake和Onenable方法会先执行(Onenable执行两次的原因是,我在创建之后隐藏了,又重新**了。)
当创建物体好了之后,并不会马上调用B脚本的start和update等方法。而是回到A代码的下一行,继续将A代码之后的代码执行完之后,再调用游戏物体上的start和update等方法。(如果把A代码之后的代码改成死循环,程序将卡死。)
这个简单的测试更加证明了。Unity是单线程的!!!