Unity不同脚本之间的执行顺序

来源:互联网 发布:贵州大数据发展 编辑:程序博客网 时间:2024/05/22 00:38

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

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

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


void Awake()

{

Script1.Awake();

Script2.Awake();

}


手动设置脚本执行顺序:


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

2、点击右上角Execution Order显示如下:


这样设置之后需要注意,在先执行的脚本中引用后执行的脚本会报错


下方数值越小的排在越前面脚本将率先执行,如果没有设置的脚本将按默认的顺序执行。


默认情况下脚本的执行顺序不可控,所以最好别在一个脚本初始化中对其他脚本引用,除非你确定该脚本已经实例化