淺談Unity生命週期

腳本生命週期

通常不單獨存在  , 是指掛載的遊戲物體從 "出生到死亡" , 所經歷的一些事件。
這些生命週期是一些特定方法
由引擎自動調用(無法人工調用), 全定義於MonoBehaviour 類之中

因此只有繼承於此類的腳本才有生命週期事件喔 !!!!!!!



從上往下

(一)編輯器處理

(二)初始化

(三)物理引擎處理

(四)輸入事件

(五)遊戲邏輯

(六)螢幕渲染

(七)標誌渲染

(八)UI渲染

....... etc




兩份 測試程式腳本


一份配置給方塊預置物(Prefab)












常用生命週期事件

unity自带的方法有 Start() Enabled() Awake()..................


【用在初始化的階段】

1.  Awake()

喚醒事件  , 且只一次 。


2. OnEnable()

啟動事件,只執行一次。當腳本組件被啟用的時候執行一次


3.Start()

開始事件 , 只執行一次。


4. FixedUpdate()

固定更新事件 , 執行N次 , 0.02秒執行一次!!!
所有物理組件相關更新都要在此事件中調用。

5.Update() 

更新事件 , 執行N次 , 每幀(frame)執行一次

6. LateUpdate()  ---> 比Update多一次!!! (可能比其先運行)

稍後更新事件 , 執行N次 , 在Update執行完之後再執行。



7. OnGUI()

GUI 渲染事件 , 執行N次 , 執行次數是Update約兩倍。



8. OnDisable()

禁用事件 , 執行一次。 在 OnDestroy 事件前 執行。
或 當腳本組件被 "禁用"後 , 也會觸發該事件。


9. OnDestroy()

銷毀事件 , 執行一次。 當腳本所掛載的遊戲物件被銷毀時執行。






10. 注意的重點

生命週期事件 , 全是由系統所定義好的 , 且系統會自動呼叫。
系統呼叫這些事件之順序 , 和我們程式撰寫的順序無關!!!!!









留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header