您好,登錄后才能下訂單哦!
Unity3D中所有控制腳本的基類MonoBehaviour有一些虛函數(shù)用于繪制中事件的回調(diào),也可以直接理解為事件函數(shù),例如大家都很清楚的Start,Update等函數(shù),以下做個(gè)總結(jié)。
Awake
當(dāng)前控制腳本實(shí)例被裝載的時(shí)候調(diào)用。一般用于初始化整個(gè)實(shí)例使用。
Start
當(dāng)前控制腳本第一次執(zhí)行Update之前調(diào)用。
Update
每幀都執(zhí)行一次。這是最常用的事件函數(shù)。
FixedUpdate
每固定幀繪制時(shí)執(zhí)行一次,和update不同的是FixedUpdate是渲染幀執(zhí)行,如果你的渲染效率低下的時(shí)候FixedUpdate調(diào)用次數(shù)就會(huì)跟 著下降。FixedUpdate比較適用于物理引擎的計(jì)算,因?yàn)槭歉繋秩居嘘P(guān)。Update就比較適合做控制。
LateUpdate
在每幀執(zhí)行完畢調(diào)用,他是在所有update結(jié)束后才掉,比較適合用于命令腳本的執(zhí)行。官網(wǎng)上例子是攝像機(jī)的跟隨,都是在所有update操作完才跟進(jìn)攝像機(jī),不然就有可能出現(xiàn)攝像機(jī)已經(jīng)推進(jìn)了,但是視角里還未有角色的空幀出現(xiàn)。
Reset
這個(gè)是編輯器模式情況下你點(diǎn)擊reset按鈕(如果有的話)調(diào)用的,你可以在這里做調(diào)試的初始化工作。
OnApplicationFocus
OnApplicationPause
OnApplicationQuit
應(yīng)用程序失去焦點(diǎn),應(yīng)用程序暫停,應(yīng)用程序退出時(shí)候發(fā)送這些消息。
OnBecameInvisible
OnBecameVisible
當(dāng)腳本宿主(不)被任何攝像機(jī)顯示時(shí)候發(fā)送此消息。
OnCollisionEnter
OnCollisionExit
OnCollisionStay
當(dāng)其他碰撞或者剛體(collider/rigidbody )和參數(shù)的碰撞或者剛體(collider/rigidbody )重疊、退出時(shí)發(fā)送前兩個(gè)。而當(dāng)他們保持重疊狀態(tài)時(shí)每幀都會(huì)發(fā)送一個(gè)Stay消息。
OnConnectedToServer
OnDisconnectedFromServer
OnFailedToConnect
OnFailedToConnectToMasterServer
前兩個(gè) 當(dāng)客戶端成功連接到服務(wù)器或者斷開服務(wù)器時(shí)發(fā)送此消息。
后兩個(gè) 當(dāng)連接失敗時(shí)候觸發(fā)
OnMasterServerEvent
當(dāng)Master服務(wù)器發(fā)送報(bào)告時(shí)候觸發(fā)。
OnNetworkInstantiate
當(dāng)物體被Network.Instantiate時(shí)觸發(fā)。(還沒研究到)
OnPlayerConnected
OnPlayerDisconnected
在服務(wù)端當(dāng)玩家成功連接/離線時(shí)候觸發(fā)。
OnControllerColliderHit
當(dāng)控制者和參數(shù)ControllerColliderHit碰撞時(shí)候觸發(fā)此消息。官方舉例可以用于角色移動(dòng)一個(gè)物體,當(dāng)角色碰到這個(gè)參數(shù)物體時(shí)候,你可以在這函數(shù)里操作移動(dòng)此物體的動(dòng)作,等等。
OnParticleCollision
當(dāng)粒子撞到碰撞體(collider)時(shí)觸發(fā)。
OnDisable
OnEnable
當(dāng)腳本宿主被啟用或者禁用時(shí)候觸發(fā)。
OnDrawGizmos
OnDrawGizmosSelected
編輯器狀態(tài)時(shí)繪制Gizmos和Gizmos被選取時(shí)候觸發(fā)。
注:Gizmos參見我另一篇blog,他是用與做自己的組件時(shí)候用的,比如路徑點(diǎn)繪制之類的。
OnGUI
繪制GUI時(shí)候觸發(fā)。一般在這個(gè)函數(shù)里繪制GUI菜單。
OnJointBreak
(還沒研究到)
OnLevelWasLoaded
當(dāng)新的level(unity包)讀取完畢時(shí)候觸發(fā)。
OnMouseDown
OnMouseDrag
OnMouseEnter
OnMouseExit
OnMouseOver
OnMouseUp
鼠標(biāo)事件,都是當(dāng)鼠標(biāo)和gui或者碰撞體(Collider)交互時(shí)候觸發(fā)。需要說明的是drag其實(shí)就是鼠標(biāo)down后up之前持續(xù)每幀都會(huì)發(fā)送此消息。
OnPostRender
這個(gè)函數(shù)僅用于宿主為攝像機(jī)的腳本。當(dāng)此攝像機(jī)范圍內(nèi)所有渲染都完成時(shí)候觸發(fā)此消息。
OnPreCull
這個(gè)函數(shù)僅用于宿主為攝像機(jī)的腳本。當(dāng)此攝像機(jī)剔除了某個(gè)渲染場(chǎng)景時(shí)候觸發(fā)此消息。(未驗(yàn)證)
OnPreRender
這個(gè)函數(shù)僅用于宿主為攝像機(jī)的腳本。當(dāng)此攝像機(jī)開始渲染某個(gè)場(chǎng)景時(shí)候觸發(fā)此消息。
OnRenderImage
當(dāng)所有渲染完成image的postprocessing effects(只有pro版支持)后觸發(fā)。
OnRenderObject
這個(gè)函數(shù)僅用于宿主為攝像機(jī)的腳本。當(dāng)使用Graphics.DrawMeshNow 或者其他函數(shù)繪制自己建立的物體渲染完畢時(shí)觸發(fā)。
OnSerializeNetworkView
OnServerInitialized
當(dāng) Network.InitializeServer完成時(shí)觸發(fā)。
OnTriggerEnter
OnTriggerExit
OnTriggerStay
當(dāng)碰撞體(collier)接觸觸發(fā)區(qū)域(trigger)時(shí)候的一系列消息。
OnWillRenderObject
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。