我們都知道,Unity中某個(gè)腳本的執(zhí)行順序是Awake、Start、Update、LateUpdate等,但是不同的腳本之間的執(zhí)行順序是怎樣的呢?
例如我有兩個(gè)腳本Script1和Script2,那么這兩個(gè)腳本的Awake執(zhí)行順序是怎樣的呢?
要知道真相我們就必須了解Unity后臺(tái)的運(yùn)行原理,其實(shí)Unity后臺(tái)是單線程執(zhí)行的,所謂的協(xié)程都是偽多線程。不同腳本的Awake在后臺(tái)的執(zhí)行真相是這樣的:
void Awake(){
A.Awake();
B.Awake();
C.Awake();
...
}
Start、Update等函數(shù)也是相同的道理,那么問題就來了,這么多腳本,他們的執(zhí)行順序到底是怎樣的呢?

image.png
2.點(diǎn)擊右上角Execution Order顯示如下:同樣可以在Edit>Project Settings>Script Execution Order也可以打開這個(gè)頁面

image.png
3、點(diǎn)擊加號(hào)添加你想要排序的腳本文件。
4、拖動(dòng)腳本文件進(jìn)行排序。
5、只要把腳本的Default Time的時(shí)間改大一點(diǎn),這個(gè)腳本就會(huì)遲運(yùn)行的。
趕緊來試試吧!