Unity不同脚本或者多个脚本之间的执行顺序Awake, Start

我们都知道,Unity中某个脚本的执行顺序是Awake、Start、Update、LateUpdate等,但是不同的脚本之间的执行顺序是怎样的呢?

例如我有两个脚本Script1和Script2,那么这两个脚本的Awake执行顺序是怎样的呢?

要知道真相我们就必须了解Unity后台的运行原理,其实Unity后台是单线程执行的,所谓的协程都是伪多线程。不同脚本的Awake在后台的执行真相是这样的:

void Awake(){
      A.Awake();
      B.Awake();
      C.Awake();
      ...
}

Start、Update等函数也是相同的道理,那么问题就来了,这么多脚本,他们的执行顺序到底是怎样的呢?

1、先在project窗口选中一个脚本文件,然后在Inspector卡中显示如下:
image.png

2.点击右上角Execution Order显示如下:同样可以在Edit>Project Settings>Script Execution Order也可以打开这个页面


image.png

3、点击加号添加你想要排序的脚本文件。

4、拖动脚本文件进行排序。
5、只要把脚本的Default Time的时间改大一点,这个脚本就会迟运行的。
赶紧来试试吧!

你可能感兴趣的:(Unity不同脚本或者多个脚本之间的执行顺序Awake, Start)