unity3D技術之事件函數的執行順序
轉自http://www.yxkfw.com/?p=13703
在unity的腳本,有大量的腳本執行按照預先確定的順序執行的事件函數。此執行順序說明如下:
scene啟動 (一次為每個場景中的對象) 時,會調用這些函數。
請注意對於對象添加到場景,所有腳本的清醒和 OnEnable函數將被調用之前啟動、更新、 等統稱為其中任何。當然,這不能強制執行時在游戲過程中實例化對象。 在第一幀更新之前
為對象添加到場景,開始將對所有腳本更新之前,調用函數等統稱為其中任何。當然,這不能強制執行時在游戲過程中實例化對象。 幀之間
Update Order 當游戲邏輯和交互,動畫,相機位置,等您要跟蹤的時有幾個不同的事件,您可以使用。常見的模式是執行大多數任務里面的更新功能,但也有其他可以使用的函數。
更新函數返回后運行正常的協程的更新。協同是一個函數,可以暫停其執行 (收益率),直到完成給定的YieldInstruction。不同用途的協同程序:
在你的場景中的所有活動對象上得到調用這些函數:
下面的關系圖概述訂購和重復事件函數在腳本的一生。 |
Update 當MonoBehaviour啟用時,其Update在每一幀被調用。 LateUpdate 當Behaviour啟用時,其LateUpdate在每一幀被調用。 FixedUpdate 當MonoBehaviour啟用時,其 FixedUpdate 在每一幀被調用。 Awake 當一個腳本實例被載入時Awake被調用。 Start Start僅在Update函數第一次被調用前調用。 Reset 重置為默認值。 OnMouseEnter 當鼠標進入到GUIElement(GUI元素)或Collider(碰撞體)中時調用OnMouseEnter。 OnMouseOver 當鼠標懸浮在GUIElement(GUI元素)或Collider(碰撞體)上時調用 OnMouseOver . OnMouseExit 當鼠標移出GUIElement(GUI元素)或Collider(碰撞體)上時調用OnMouseExit。 OnMouseDown 當鼠標在GUIElement(GUI元素)或Collider(碰撞體)上點擊時調用OnMouseDown。 OnMouseUp 當用戶釋放鼠標按鈕時調用OnMouseUp。 OnMouseUpAsButton OnMouseUpAsButton只有當鼠標在同一個GUIElement或Collider按下,在釋放時調用。 OnMouseDrag 當用戶鼠標拖拽GUIElement(GUI元素)或Collider(碰撞體)時調用 OnMouseDrag 。 OnTriggerEnter 當Collider(碰撞體)進入trigger(觸發器)時調用OnTriggerEnter。 OnTriggerExit 當Collider(碰撞體)停止觸發trigger(觸發器)時調用OnTriggerExit。 OnTriggerStay 當碰撞體接觸觸發器時,OnTriggerStay將在每一幀被調用。 OnCollisionEnter 當此collider/rigidbody觸發另一個rigidbody/collider時,OnCollisionEnter將被調用。 OnCollisionExit 當此collider/rigidbody停止觸發另一個rigidbody/collider時,OnCollisionExit將被調用。 OnCollisionStay 當此collider/rigidbody觸發另一個rigidbody/collider時,OnCollisionStay將會在每一幀被調用。 OnControllerColliderHit 在移動的時,當controller碰撞到collider時OnControllerColliderHit被調用。 OnJointBreak 當附在同一對象上的關節被斷開時調用。 OnParticleCollision 當粒子碰到collider時被調用。 OnBecameVisible 當renderer(渲染器)在任何相機上可見時調用OnBecameVisible。 OnBecameInvisible 當renderer(渲染器)在任何相機上都不可見時調用OnBecameInvisible。 OnLevelWasLoaded 當一個新關卡被載入時此函數被調用。 OnEnable 當對象變為可用或激活狀態時此函數被調用。 OnDisable 當對象變為不可用或非激活狀態時此函數被調用。 OnDestroy 當MonoBehaviour將被銷毀時,這個函數被調用。 OnPreCull 在相機消隱場景之前被調用。 OnPreRender 在相機渲染場景之前被調用。 OnPostRender 在相機完成場景渲染之后被調用。 OnRenderObject 在相機場景渲染完成后被調用。 OnWillRenderObject 如果對象可見每個相機都會調用它。 OnGUI 渲染和處理GUI事件時調用。 OnRenderImage 當完成所有渲染圖片后被調用,用來渲染圖片后期效果。 OnDrawGizmosSelected 如果你想在物體被選中時繪制gizmos,執行這個函數。 OnDrawGizmos 如果你想繪制可被點選的gizmos,執行這個函數。 OnApplicationPause 當玩家暫停時發送到所有的游戲物體。 OnApplicationFocus 當玩家獲得或失去焦點時發送給所有游戲物體。 OnApplicationQuit 在應用退出之前發送給所有的游戲物體。 OnPlayerConnected 當一個新玩家成功連接時在服務器上被調用。 OnServerInitialized 當Network.InitializeServer被調用並完成時,在服務器上調用這個函數。 OnConnectedToServer 當你成功連接到服務器時,在客戶端調用。 OnPlayerDisconnected 當一個玩家從服務器上斷開時在服務器端調用。 OnDisconnectedFromServer 當失去連接或從服務器端斷開時在客戶端調用。 OnFailedToConnect 當一個連接因為某些原因失敗時在客戶端調用。 OnFailedToConnectToMasterServer 當報告事件來自主服務器時在客戶端或服務器端調用。 OnMasterServerEvent 當報告事件來自主服務器時在客戶端或服務器端調用。 OnNetworkInstantiate 當一個物體使用Network.Instantiate進行網絡初始化時調用。 OnSerializeNetworkView 在一個網絡視圖腳本中,用於自定義變量同步