1. 程式人生 > >Unity5指令碼事件函式及其執行順序

Unity5指令碼事件函式及其執行順序

指令碼函式

編輯器相關函式

Reset:當指令碼附加到GameObject上或者指令碼的右鍵選單項裡選擇了“Reset”命令的時候呼叫此函式。 
OnValidate:指令碼被載入或則值被改變在inspector中時呼叫

初始化函式

Awake:此函式在指令碼附加到GameObject物件上且此物件是被啟用的的時候呼叫。並且是在所有Start函式呼叫之前呼叫。但是要特殊說明的是,就算掛的指令碼沒有被啟用此函式也會呼叫。 
OnEnable:指令碼物件被啟用的時候。 
Start:在所有的Update函式呼叫之前呼叫。

物理相關函式

FixedUpdate:物理更函式函式,一幀中可能呼叫幾次 
OnTriggerEnter:進入觸發器(勾選了IsTrigger的Collider)時觸發 
OnTriggerEnter2D:進入2D觸發器(勾選了IsTrigger的Collider)時觸發 
OnTriggerExit:離開觸發器(勾選了IsTrigger的Collider)時觸發 
OnTriggerExit2D:離開2D觸發器(勾選了IsTrigger的Collider)時觸發 
OnTriggerStay:在觸發器裡(勾選了IsTrigger的Collider)時觸發 
OnTriggerStay2D:在2D觸發器裡(勾選了IsTrigger的Collider)時觸發

OnCollisionEnter:進入碰撞器(Collider)時觸發 
OnCollisionEnter2D:進入2D碰撞器(Collider)時觸發 
OnCollisionExit:離開碰撞器(Collider)時觸發 
OnCollisionExit2D:離開2D碰撞器(Collider)時觸發 
OnCollisionStay:在碰撞器裡(Collider)時觸發 
OnCollisionStay2D:在2D碰撞器(Collider)時觸發

輸入相關函式

OnMouseDown:滑鼠在GUIElement或Collider上按下時呼叫 
OnMouseDrag:滑鼠在GUIElement或Collider上拖拽時呼叫 
OnMouseEnter:滑鼠進入GUIElement或Collider時呼叫 
OnMouseExit:滑鼠離開GUIElement或Collider時呼叫 
OnMouseOver:滑鼠懸浮在GUIElement或Collider上時呼叫 
OnMouseUp:滑鼠從GUIElement或Collider彈起時呼叫 
OnMouseUpAsButton:滑鼠在同一個GUIElement或Collider上按下喝彈起時呼叫,也就是單擊一GUIElement或Collider時。

遊戲邏輯相關函式

Update:遊戲邏輯的更新函式 
LateUpdate:所有Update函式呼叫後呼叫的更新函式

渲染相關函式

OnPreCull:在執行剔除之前執行的函式 
OnBecameVisible:此物件從隱藏到顯示時呼叫 
OnBecameInvisible:此物件從顯示到隱藏時呼叫 
OnWillRenderObject:將要渲染此物件時呼叫 
OnPreRender:渲染場景之前 
OnRenderObject:所有常規的渲染結束後呼叫 
OnPostRender:渲染完整個場景後呼叫 
OnRenderImage:場景渲染完後呼叫 
OnGUI:執行UI的渲染,一幀中可能呼叫幾次 
OnDrawGizmos: 執行場景檢視中物件的標示圖示的繪製 
OnDrawGizmosSelected:執行場景檢視中選中物件的標示圖示的繪製

應用程式相關函式

OnApplicationFocus:應用程式成為當前的應用時呼叫 
OnApplicationPause:當應用程式切入後臺暫停時呼叫 
OnApplicationQuit:應用程式退出時呼叫

其他函式

OnDisable:指令碼物件被禁用時呼叫 
OnDestory:指令碼物件被銷燬的時候呼叫 
OnLevelWasLoaded:一個新的場景載入時呼叫

協程

yield:延緩到下一幀執行 
yield WaitForSeconds:這一幀執行完後,等待指定的延遲到 
yield WaitForFixedUpdate:所有的固定更新完成後 
yield WWW:www下載完成 
yield StartCoroutine 等待一個自定的函式完成

指令碼生命週期流程圖

這裡寫圖片描述

參考文獻

Unity手冊:http://docs.unity3d.com/500/Documentation/Manual/ExecutionOrder.html 
API文件:http://docs.unity3d.com/500/Documentation/ScriptReference/MonoBehaviour.html