日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > [Unity-20] Unity不同腳本之間的執(zhí)行順序

[Unity-20] Unity不同腳本之間的執(zhí)行順序

來源:程序員人生   發(fā)布時(shí)間:2014-12-12 08:51:28 閱讀次數(shù):2584次

我們都知道,Unity中某個(gè)腳本的履行順序是Awake、Start、Update、LateUpdate等,但是不同的腳本之間的履行順序是怎樣的呢?

例如我有兩個(gè)腳本Script1和Script2,那末這兩個(gè)腳本的Awake履行順序是怎樣的呢?

要知道真相我們就必須了解Unity后臺的運(yùn)行原理,其實(shí)Unity后臺是單線程履行的,所謂的協(xié)程都是偽多線程。不同腳本的Awake在后臺的履行真相是這樣的:

后臺Awake() { 腳本0Awake(); 腳本1Awake(); ........ }
Start、Update等函數(shù)也是相同的道理,那末問題就來了,這么多腳本,他們的履行順序究竟是怎樣的呢?

這個(gè)關(guān)系我還真沒弄明白其中的規(guī)律,不過Unity提供了1個(gè)設(shè)置不同腳本之間履行順序的功能:

1、先在project窗口選中1個(gè)腳本文件,然后在Inspector卡中顯示以下:

2、點(diǎn)擊右上角Execution Order顯示以下:

3、點(diǎn)擊加號添加你想要排序的腳本文件。

4、拖動腳本文件進(jìn)行排序。

這樣腳本就會依照你排的順序順次進(jìn)行初始化。

我們之所以要設(shè)置腳本間的履行順序主要是為了不下面這類情況

public class Script1 : MonoBehaviour { void Awake () { GameObject.CreatePrimitive(PrimitiveType.Cube); } }

public class Script2 : MonoBehaviour { void Awake () { GameObject go = GameObject.Find("Cube"); Debug.Log(go.name); } }
這樣如果Script2在Scirpt1之前履行的話,就會報(bào)錯(cuò)。因此需要對腳本初始化順序進(jìn)行設(shè)置。

但是還有另外1種方法來解決上述問題:

那就是在Script1的Awake創(chuàng)建cube,在Script2的Start訪問cube,這樣就不會出錯(cuò)啦。

由于后臺的也是嚴(yán)格依照Awake早于Start的順序履行的,也就是先把所有腳本的Awake履行完,然后再履行所有腳本的Start。




生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产成人精品免费视频大全最热 | 伊人久久免费 | 蜜桃一区二区三区 | 久久99精品久久久久久按摩秒播 | 在线观看视频黄 | 色在线免费视频 | 久久免费网 | 欧美日韩国产二区 | 欧美一区二区三区在线观看视频 | 国产精品久久久久久久婷婷 | 久久久夜色精品亚洲 | 日韩激情在线观看 | 国产激情美女久久久久久吹潮 | 国产资源精品 | 玖玖久久 | 麻豆精品视频在线 | 国产专区在线 | 中文一区二区 | 久久久久无码国产精品一区 | 欧美视频二区 | 911影院在线观看网站 | 国产精品久久久久久久久久久久冷 | 欧美日本色| 亚洲色图第一页 | 国产伦精品一区二区免费 | 欧美日韩二区三区 | 亚洲福利影院 | 国产三级精品三级在线观看国产 | 欧美日韩精品一区二区三区四区 | 亚洲自拍小视频 | 免费一级毛片电影 | 欧美日韩在线第一页 | 日韩av免费在线观看 | 成年人免费在线观看 | 国产剧情一区二区三区 | 性欧美高清come | 精品国内 | 国产在线视频不卡 | 欧美日韩国产免费 | 国内成人自拍视频 | av免费网站在线观看 |