多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > [Unity-20] Unity不同腳本之間的執行順序

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

來源:程序員人生   發布時間:2014-12-12 08:51:28 閱讀次數:2575次

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

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

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

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

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

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

2、點擊右上角Execution Order顯示以下:

3、點擊加號添加你想要排序的腳本文件。

4、拖動腳本文件進行排序。

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

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

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之前履行的話,就會報錯。因此需要對腳本初始化順序進行設置。

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

那就是在Script1的Awake創建cube,在Script2的Start訪問cube,這樣就不會出錯啦。

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




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: japanesexxxxx护士 japanesexxx在线播放 | 午夜影院免费看 | 欧美激情综合亚洲五月蜜桃 | xxxxxxx国产精品视频 | 国产精品久久久久久久成人午夜 | 亚洲在线一区二区 | 东方伊人免费在线观看 | 在线成人亚洲 | 午夜dj影视在线观看免费视频 | 国产精品人人视频 | 中文字幕激情视频 | 国产欧美曰韩一区二区三区 | 欧美日韩久久 | 久久avav| 日韩在线观看一区 | 日本一区二区不卡久久入口 | 成人a网站 | 亚洲欧美偷拍另类 | 欧美一区二区三区高清不卡tv | 成人在线视频国产 | 中国性猛交xxxx乱大交 | 精品偷自拍另类在线观看 | 日本在线观看www免费 | 九月丁香婷婷 | 欧美乱大交xxxxx在线观看 | 一级毛片国产真人永久在线 | 双性h啪啪樱桃动漫直接观看 | 中文字幕免费观看 | 性欧美video另类3d | 毛片在线播放观看日本 | 欧美一级欧美一级毛片 | 亚洲区欧美区 | 国产欧美一区二区三区免费看 | 中文字幕在线播放第一页 | 亚欧毛片基地国产毛片基地 | 毛片免费在线播放 | 久久免费观看国产精品 | 欧美成人性视频播放 | 久久久久久一级毛片免费野外 | 亚洲视频免费播放 | 欧美日韩一区二区综合 |