1. 程式人生 > >(轉載)MonoBehaviour的事件和具體功能總結

(轉載)MonoBehaviour的事件和具體功能總結

精簡版(按字母順序)

Awake 喚醒

CancelInvoke 取消呼叫

FixedUpdate 固定更新

InvokeRepeating 重複呼叫

Invoke 呼叫

IsInvoking 是否呼叫

LateUpdate 晚於更新

OnApplicationFocus當程式焦點

OnApplicationPause當程式暫停

OnApplicationQuit 當程式退出

OnBecameInvisible 當不可見

OnBecameVisible 當可見

OnCollisionEnter 當進入碰撞

OnCollisionExit 當退出碰撞

OnCollisionStay 當逗留碰撞

OnConnectedToServer當連線到伺服器

OnControllerColliderHit當控制碰撞器碰撞

OnDestroy 當銷燬

OnDisable 當不可用

OnDisconnectedFromServer當從伺服器斷開連線

OnDrawGizmosSelected當選擇時繪製Gizmos

OnDrawGizmos 當繪製Gizmos

OnEnable 當可用

OnFailedToConnectToMasterServer當連線到主伺服器失敗

OnFailedToConnect 當連線失敗

OnGUI 當介面

OnJointBreak 當關節斷開

OnLevelWasLoadedOnLevelWasLoaded

OnMasterServerEvent當主伺服器事件

OnMouseDown 當滑鼠按下

OnMouseDrag 當滑鼠拖動

OnMouseEnter 當滑鼠進入

OnMouseExit 當滑鼠退出

OnMouseOver 當滑鼠經過

OnMouseUpAsButton 當滑鼠作為按鈕彈起時

OnMouseUp 當滑鼠彈起

OnNetworkInstantiate當網路例項

OnParticleCollision當碰撞粒子

OnPlayerConnected 當玩家連線

OnPlayerDisconnected當玩家斷開連線

OnPostRender 當渲染之後

OnPreCull 當消隱之前

OnPreRender 當渲染之前

OnRenderImage 當渲染圖片

OnRenderObject 當渲染物體

OnSerializeNetworkView當序列化網路檢視

OnServerInitialized當伺服器初始化

OnTriggerEnter 當進入觸發器

OnTriggerExit 當退出觸發器

OnTriggerStay 當逗留觸發器

OnWillRenderObject當渲染物體之前

print 列印

Reset 重置

StartCoroutine 開始協同程式

Start 開始

StopAllCoroutines 停止所有協同程式

StopCoroutineStopCoroutine 停止協同程式

Update 更新

useGUILayout 使用介面佈局

--------------------------------------------

詳細版 (按執行順序)

Awake

當前控制指令碼例項被裝載的時候呼叫。一般用於初始化整個例項使用。

Start

當前控制指令碼第一次執行Update之前呼叫。

Update

每幀都執行一次。這是最常用的事件函式。

FixedUpdate

每固定幀繪製時執行一次,和update不同的是FixedUpdate是渲染幀執行,如果你的渲染效率低下的時候FixedUpdate呼叫次數就會跟著下降。FixedUpdate比較適用於物理引擎的計算,因為是跟每幀渲染有關。Update就比較適合做控制。

LateUpdate

在每幀執行完畢呼叫,他是在所有update結束後才掉,比較適合用於命令指令碼的執行。官網上例子是攝像機的跟隨,都是在所有update操作完才跟進攝像機,不然就有可能出現攝像機已經推進了,但是視角里還未有角色的空幀出現。

Reset

這個是編輯器模式情況下你點選reset按鈕(如果有的話)呼叫的,你可以在這裡做除錯的初始化工作。

OnApplicationFocus

當玩家獲得或失去焦點時傳送給所有遊戲物體,可以作為協同程式,在函式中使用yield語句即可。

OnApplicationPause

當玩家暫停時傳送到所有的遊戲物體,可以作為協同程式,在函式中使用yield語句即可。

OnApplicationQuit

在應用退出之前傳送給所有的遊戲物體。當用戶停止執行模式時在編輯器中呼叫。當web被關閉時在網路播放器中被呼叫。

OnBecameInvisible

當renderer(渲染器)在任何相機上都不可見時呼叫OnBecameInvisible。

OnBecameVisible

當renderer(渲染器)在任何相機上可見時呼叫OnBecameVisible。

OnCollisionEnter

當此collider/rigidbody觸發另一個rigidbody/collider時,OnCollisionEnter將被呼叫。相對於OnTriggerEnter,OnCollisionEnter傳遞的是Collision類而不是Collider。Collision包含接觸點,碰撞速度等細節。如果在函式中不使用碰撞資訊,省略collisionInfo引數以避免不必要的運算。注意如果碰撞體附加了一個非動力學剛體,只發送碰撞事件。

OnCollisionExit

當此collider/rigidbody停止觸發另一個rigidbody/collider時,OnCollisionExit將被呼叫。

OnCollisionStay

當此collider/rigidbody觸發另一個rigidbody/collider時,OnCollisionStay將會在每一幀被呼叫。

OnConnectedToServer

當你成功連線到伺服器時,在客戶端呼叫。

OnDisconnectedFromServer

當失去連線或從伺服器端斷開時在客戶端呼叫。

OnFailedToConnect

當一個連線因為某些原因失敗時在客戶端呼叫。

OnFailedToConnectToMasterServer

前兩個 當客戶端成功連線到伺服器或者斷開伺服器時傳送此訊息。

後兩個 當連線失敗時候觸發

OnMasterServerEvent

當Master伺服器傳送報告時候觸發。

OnNetworkInstantiate

當一個物體使用Network.Instantiate進行網路初始化時呼叫。這對於禁用或啟用一個已經初始化的物體元件來說是非常有用的,它們的行為取決於它們是在本地還是在遠端。注意: 在NetworkMessageInfo裡的networkView屬性不能在OnNetworkInstantiate裡使用。

OnPlayerConnected

當一個新玩家成功連線時在伺服器上被呼叫。

OnPlayerDisconnected

當一個玩家從伺服器上斷開時在伺服器端呼叫。

OnControllerColliderHit

在移動的時,當controller碰撞到collider時OnControllerColliderHit被呼叫。它可以用來在角色碰到物體時推開物體。

OnParticleCollision

當粒子碰到collider時被呼叫。

這個可以用於遊戲物件被粒子擊中時應用傷害到它上面。這個訊息被髮送到所有附加到theWorldParticleCollider 的指令碼上和被擊中的碰撞體上。這個訊息只有當你在theWorldParticleCollider 檢視面板中啟用了sendCollisionMessage 才會被髮送。

OnDisable

當物件變為不可用或非啟用狀態時此函式被呼叫。當物體被銷燬時它將被呼叫,並且可用於任意清理程式碼。當指令碼編譯完成之後被重載入時,OnDisable將被呼叫,OnEnable在指令碼被載入後呼叫。

OnEnable

當物件變為可用或啟用狀態時此函式被呼叫。OnEnable不能用於協同程式

OnDrawGizmos

OnDrawGizmosSelected

編輯器狀態時繪製Gizmos和Gizmos被選取時候觸發。

注:Gizmos參見我另一篇blog,他是用與做自己的元件時候用的,比如路徑點繪製之類的。

OnGUI

繪製GUI時候觸發。一般在這個函式裡繪製GUI選單。

OnJointBreak

當附在同一物件上的關節被斷開時呼叫

OnLevelWasLoaded

當一個新關卡被載入時此函式被呼叫

OnMouseDown

當滑鼠在GUIElement(GUI元素)或Collider(碰撞體)上點選時呼叫OnMouseDown。這個事件將傳送給 Collider 或 GUIElement 上的所有指令碼。注意:此函式在iPhone上無效

OnMouseDrag

當用戶滑鼠拖拽GUIElement(GUI元素)或Collider(碰撞體)時呼叫 OnMouseDrag 。

OnMouseEnter

當滑鼠進入到GUIElement(GUI元素)或Collider(碰撞體)中時呼叫OnMouseEnter

OnMouseExit

當滑鼠移出GUIElement(GUI元素)或Collider(碰撞體)上時呼叫OnMouseExit。

OnMouseOver

當滑鼠懸浮在GUIElement(GUI元素)或Collider(碰撞體)上時呼叫 OnMouseOver 。

OnMouseUp

滑鼠事件,都是當滑鼠和gui或者碰撞體(Collider)互動時候觸發。需要說明的是drag其實就是滑鼠down後up之前持續每幀都會發送此訊息。

OnPostRender

這個函式僅用於宿主為攝像機的指令碼。當此攝像機範圍內所有渲染都完成時候觸發此訊息。

OnPreCull

這個函式僅用於宿主為攝像機的指令碼。當此攝像機剔除了某個渲染場景時候觸發此訊息。(未驗證)

OnPreRender

這個函式僅用於宿主為攝像機的指令碼。當此攝像機開始渲染某個場景時候觸發此訊息。

OnRenderImage

當所有渲染完成image的postprocessing effects(只有pro版支援)後觸發。

OnRenderObject

這個函式僅用於宿主為攝像機的指令碼。當使用Graphics.DrawMeshNow 或者其他函式繪製自己建立的物體渲染完畢時觸發。

OnSerializeNetworkView

在一個網路檢視指令碼中,用於自定義變數同步,它自動決定被序列化的變數是否應該傳送或接收,檢視下面的例子獲取更好的描述。這個依賴於誰擁有這個物體,例如,所有者傳送,其他物體接收。

OnServerInitialized

當Network.InitializeServer被呼叫並完成時,在伺服器上呼叫這個函式。

OnTriggerEnter

當Collider(碰撞體)進入trigger(觸發器)時呼叫OnTriggerEnter。這個訊息被髮送到觸發器碰撞體和剛體(或者碰撞體假設沒有剛體)。注意如果碰撞體附加了一個剛體,也只發送觸發器事件。

OnTriggerExit

當Collider(碰撞體)停止觸發trigger(觸發器)時呼叫OnTriggerExit

OnTriggerStay

當碰撞體接觸觸發器時,OnTriggerStay將在每一幀被呼叫。

OnWillRenderObject

如果物件可見每個相機都會呼叫它。如果MonoBehaviour被禁用,此函式將不被呼叫。此函式在消隱過程中被呼叫,在渲染所有被消隱的物體之前被呼叫。你可以用它來建立具有依賴性的紋理並且只有在被渲染的物體可見時才更新這個紋理。舉例來講,它已用於水元件中。Camera.current將被設定為要渲染這個物體的相機。

原文:http://www.manew.com/blog-4057-706.html