(一)簡介
(1)所有的生命週期函數都派生自MonoBehaviour,需要繼承 MonoBehaviour 類才能使用;
(2)生命週期函數全部都是由系統定義好的,系統會自動調用,且調用順序和我們在代碼裏面的書寫順序無關;
(二)執行順序
編輯器 ⟶ 初始化 ⟶ 物理系統 ⟶ 輸入事件 ⟶ 遊戲邏輯 ⟶ 場景渲染 ⟶ GUI渲染
⟶ 物體狀態(激活/禁用)⟶ 物體銷燬 ⟶ 應用結束
(三)常用的生命週期函數
函數 | |
---|---|
Reset() |
(1)用戶點擊檢視面板的Reset按鈕或者首次添加該組件時被調用; (2)常用於給組件恢復默認值; (3)只在編輯模式下被調用; |
Awake() |
(1)Awake用於在遊戲開始之前初始化變量或設置遊戲狀態; (2)Awake像構造函數一樣只被調用一次; |
OnEnable() |
(1)僅在對象處於激活狀態時調用; (2)常用於給組件恢復默認值; (3)OnEnable不能用於協同程序; |
Start() | |
FixedUpdate() | 在處理Rigidbody時,應該使用FixedUpdate而不是Update |
OnTriggerXXX() |
(1)進入觸發器:OnTriggerEnter(Collider other); (2)逗留觸發器:OnTriggerStay(Collider other); (3)離開觸發器:OnTriggerExit(Collider other); |
OnCollisionXXX() |
(1)碰撞開始:OnCollisionEnter(Collision collisionInfo); (2)碰撞逗留:OnCollisionStay(Collision collisionInfo); (3)碰撞結束:OnCollisionExit(Collision collisionInfo); |
OnMouseXXX() |
(1)鼠標進入:OnMouseEnter(); (2)鼠標經過:OnMouseOver(); (3)鼠標按下:OnMouseDown(); (4)鼠標拖拽:OnMouseDrag(); (5)鼠標擡起:OnMouseUp(); (6)鼠標退出:OnMouseExit(); |
Update() | 循環調用,每幀調用一次; |
LateUpdate() | 當物體在Update裏移動時,跟隨物體的相機可以在LateUpdate裏實現; |
OnGUI() | 用於呈現和處理GUI事件; |
OnDisabled() | 當對象變爲不可用或非激活狀態時此函數被調用; |
OnDestroy() |