Unity 生命周期

一,生命周期函數(shù)

1,按執(zhí)行的先后順序代碼如下

// 注意:在游戲運(yùn)行過程中,一個(gè)游戲?qū)ο蟮谝淮螁⒂玫臅r(shí)候,會(huì)執(zhí)行Awake(),OnEnable()方法 Start()方法,
// 當(dāng)不可用的時(shí)候,調(diào)用OnDisable(),重新啟用就不會(huì)執(zhí)行Awake(),Start()方法.

//首先執(zhí)行
void Awake() {
    Debug.Log("Awake-------1");

}


//游戲?qū)ο罂捎檬菆?zhí)行
void OnEnable() {
    Debug.Log("OnEable--------------2");

}


//游戲初始化
void Start () {
    Debug.Log("Start------------3");
}

//在游戲運(yùn)行前執(zhí)行 (一般用于材質(zhì)剛體渲染)
void FixedUpdate() {

    Debug.Log("FixedUpdate-----------4");

}

// Update is called once per frame
void Update () {//游戲運(yùn)行中調(diào)用;

    Debug.Log("UpDate--------------5");
}

//游戲執(zhí)行每幀后執(zhí)行一次
void LateUpdate() {
    Debug.Log("LateUpdate-----------6");

}

//執(zhí)行次數(shù)要比update更多 通常給按鈕等場(chǎng)景渲染
void OnGUI() {

    Debug.Log("OnGUI-----------------7");

}

//游戲?qū)ο蟛豢捎脮r(shí)執(zhí)行一次
void OnDisable() {

    Debug.Log("OnDisable-----------8");

    Destroy(this.gameObject);
}

//銷毀

void Destroy() { 


//}

二,各個(gè)生命周期函數(shù)的作用
1.Awake:用于在游戲開始之前初始化變量或游戲狀態(tài)。在腳本整個(gè)生命周期內(nèi)它僅被調(diào)用一次.Awake在所有對(duì)象被初始化之后調(diào)用,所以你可以安全的與其他對(duì)象對(duì)話或用諸如GameObject.FindWithTag()這樣的函數(shù)搜索它們。每個(gè)游戲物體上的Awake以隨機(jī)的順序被調(diào)用。因此,你應(yīng)該用Awake來設(shè)置腳本間的引用,并用Start來傳遞信息Awake總是在Start之前被調(diào)用。它不能用來執(zhí)行協(xié)同程序。
2.Start:僅在Update函數(shù)第一次被調(diào)用前調(diào)用。Start在behaviour的生命周期中只被調(diào)用一次。它和Awake的不同是Start只在腳本實(shí)例被啟用時(shí)調(diào)用。你可以按需調(diào)整延遲初始化代碼。Awake總是在Start之前執(zhí)行。這允許你協(xié)調(diào)初始化順序。在所有腳本實(shí)例中,Start函數(shù)總是在Awake函數(shù)之后調(diào)用。
3.FixedUpdate:固定幀更新,在Unity導(dǎo)航菜單欄中,點(diǎn)擊“Edit”–>“Project Setting”–>“Time”菜單項(xiàng)后,右側(cè)的Inspector視圖將彈出時(shí)間管理器,其中“Fixed Timestep”選項(xiàng)用于設(shè)置FixedUpdate()的更新頻率,更新頻率默認(rèn)為0.02s。
4.Update:正常幀更新,用于更新邏輯。每一幀都執(zhí)行,處理Rigidbody時(shí),需要用FixedUpdate代替Update。例如:給剛體加一個(gè)作用力時(shí),你必須應(yīng)用作用力在FixedUpdate里的固定幀,而不是Update中的幀。(兩者幀長不同)FixedUpdate,每固定幀繪制時(shí)執(zhí)行一次,和update不同的是FixedUpdate是渲染幀執(zhí)行,如果你的渲染效率低下的時(shí)候FixedUpdate調(diào)用次數(shù)就會(huì)跟著下降。FixedUpdate比較適用于物理引擎的計(jì)算,因?yàn)槭歉繋秩居嘘P(guān)。Update就比較適合做控制。
5.LateUpdate:在所有Update函數(shù)調(diào)用后被調(diào)用,和fixedupdate一樣都是每一幀都被調(diào)用執(zhí)行,這可用于調(diào)整腳本執(zhí)行順序。例如:當(dāng)物體在Update里移動(dòng)時(shí),跟隨物體的相機(jī)可以在LateUpdate里實(shí)現(xiàn)。LateUpdate,在每幀Update執(zhí)行完畢調(diào)用,他是在所有update結(jié)束后才調(diào)用,比較適合用于命令腳本的執(zhí)行。官網(wǎng)上例子是攝像機(jī)的跟隨,都是在所有update操作完才跟進(jìn)攝像機(jī),不然就有可能出現(xiàn)攝像機(jī)已經(jīng)推進(jìn)了,但是視角里還未有角色的空幀出現(xiàn)。
6.OnGUI:在渲染和處理GUI事件時(shí)調(diào)用。比如:你畫一個(gè)button或label時(shí)常常用到它。這意味著OnGUI也是每幀執(zhí)行一次。
7.Reset:在用戶點(diǎn)擊檢視面板的Reset按鈕或者首次添加該組件時(shí)被調(diào)用。此函數(shù)只在編輯模式下被調(diào)用。Reset最常用于在檢視面板中給定一個(gè)默認(rèn)值。
8.OnDisable:當(dāng)物體被銷毀時(shí) OnDisable將被調(diào)用,并且可用于任意清理代碼。腳本被卸載時(shí),OnDisable將被調(diào)用,OnEnable在腳本被載入后調(diào)用。注意: OnDisable不能用于協(xié)同程序。
9.OnDestroy:當(dāng)MonoBehaviour將被銷毀時(shí),這個(gè)函數(shù)被調(diào)用。OnDestroy只會(huì)在預(yù)先已經(jīng)被激活的游戲物體上被調(diào)用。注意:OnDestroy也不能用于協(xié)同程序。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,494評(píng)論 3 416
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,283評(píng)論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,714評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,186評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,410評(píng)論 0 288
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,940評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,776評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,976評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,210評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評(píng)論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,654評(píng)論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,958評(píng)論 2 373

推薦閱讀更多精彩內(nèi)容

  • 一、下面我們來學(xué)習(xí)下腳本生命周期常用的10個(gè)腳本函數(shù): (1) Reset() 組件重設(shè)為默認(rèn)值時(shí)(只用于編輯狀態(tài)...
    李昀熹1112閱讀 22,525評(píng)論 0 12
  • 我們會(huì)發(fā)現(xiàn),腳本里,自帶兩個(gè)函數(shù): Start()方法在Update被調(diào)用前進(jìn)行調(diào)用,只調(diào)用一次。(所以Start...
    FLY旳影子閱讀 7,697評(píng)論 0 7
  • 111. [動(dòng)畫系統(tǒng)]如何將其他類型的動(dòng)畫轉(zhuǎn)換成關(guān)鍵幀動(dòng)畫? 動(dòng)畫->點(diǎn)緩存->關(guān)鍵幀 112. [動(dòng)畫]Unit...
    胤醚貔貅閱讀 13,112評(píng)論 3 90
  • Unity腳本執(zhí)行順序:Awake -->OnEable--> Start --> FixedUpdate -->...
    夜行水寒閱讀 2,660評(píng)論 0 1
  • 考上一個(gè)985的學(xué)校 一個(gè)有修養(yǎng)的人 Dance Write Computer 畫畫,主要是素描,還有漫畫呢 快樂...
    桃官兒閱讀 206評(píng)論 0 3