Unity中指令碼的生命週期

2022-07-23 00:09:39 字數 1067 閱讀 1016

unity從喚醒到銷毀有一段生命週期,下面是系統自己呼叫的幾個重要方法

接下來,做出一下講解:先執行的方法是awake,這是生命週期的開始,用於進行啟用時的初始化**,一般可以在這個地方將當前指令碼禁用:this.enable=false,如果這樣做了,則會直接跳轉到ondisable方法執行一次,然後其他的任何方法,都將不再被執行。

如果當前指令碼處於可用狀態,則正常的執行順序是繼續向下執行onenable,當然我們可以在另外乙個指令碼中實現這個指令碼的啟動:this.enable = true;

再向下執行,會進行乙個判斷,如果start方法還沒有被執行一次,則會被執行一次,如果已經執行了,則不會再被執行。這是什麼意思呢?我們可以在某個指令碼中將元件禁用this.enable=false,再啟動時會轉到onenable處執行,這時繼續往下走,發現start執行過了,將不再被執行。比如說:第一次啟動時,將怪物的初始位置定在了(0,0,0)點,然後怪物可能會發生了位置的變換,後來被禁用了,再次啟動時,不會讓怪物又回到初始的(0,0,0)位置。

繼續向後執行,就是update了,然後fixupdate,再然後是lateupdate,如果後面寫了reset,則會回到update,在這4個事件間可以進行迴圈流動。

再向後執行,就進入了渲染模組(rendering),非常重要的乙個方法就是ongui,用於繪製圖形介面。當然,如果你使用了ngui,這個生命週期的事情你就不用考慮了。

再向後,就是解除安裝模組(teardown),這裡主要有兩個方法ondisable與ondestory。當被禁用(enable=false)時,會執行ondisable方法,但是這個時候,指令碼不會銷毀,在這個狀態下,可以重新回到onenable狀態(enable=true)。當手動銷毀或附屬的遊戲物件被銷毀時,ondestory才會被執行,當前指令碼的生命週期結束。

Unity指令碼的生命週期

新增任何任何指令碼都必須遵守自身生命週期法則,下面介紹一下生命週期中幾個重要的方法 1 function update 正常更新,用於更新邏輯,此方法每朕系統自動自動呼叫一次。2 function lateupdare 推遲更新,此方法在update 方法執行完成後呼叫,同樣是每一幀都會呼叫 3 f...

Unity指令碼生命週期

1.awake 喚醒事件 只執行一次 2.onenable 啟用事件 只執行一次 當指令碼元件被啟用的時候執行一次.3.start 開始時間 只執行一次 4.fixedupdate 固定更新事件,執行 n次,0.02 秒執行一次.所有物理元件相關的更新都在這個事件中處理.5.update 更新事件,...

unity指令碼生命週期

生命週期 unity指令碼 從喚醒 到 最後銷毀的過程。必然事件 當滿足某種條件自動執行的方法。重點 執行時機 作用 方法名稱 前提 物體啟用 指令碼啟用 unity 引擎會在一開始先呼叫所有物件的awake 再呼叫 所有物件的 start 遊戲物體載入 立即執行 僅1次 作用 充當建構函式,初始化...