五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Unity-事件函數(shù)

2021-01-06 11:28 作者:unity_某某師_高錦錦  | 我要投稿

Unity 中的腳本與傳統(tǒng)的程序概念不同。在傳統(tǒng)程序中,代碼在循環(huán)中連續(xù)運行,直到完成任務。相反,Unity 通過調(diào)用在腳本中聲明的某些函數(shù)來間歇地將控制權交給腳本。函數(shù)執(zhí)行完畢后,控制權將交回 Unity。這些函數(shù)由 Unity 激活以響應游戲中發(fā)生的事件,因此稱為事件函數(shù)。Unity 使用一種命名方案來標識要對特定事件調(diào)用的函數(shù)。例如,先前介紹過的 Update 函數(shù)(在幀更新發(fā)生之前調(diào)用)和 Start 函數(shù)(在對象的第一次幀更新之前立即調(diào)用)。Unity 中提供了大量其他事件函數(shù);可在?MonoBehaviour?類的腳本參考頁面中找到事件函數(shù)的完整列表以及詳細的事件函數(shù)用法說明。以下是一些最常見和最重要的事件。

常規(guī)更新事件

游戲很像動畫,其中的動畫幀是動態(tài)生成的。游戲編程中的一個關鍵概念是在渲染每幀之前改變游戲對象的位置、狀態(tài)和行為。Update?函數(shù)是 Unity 中包含這種代碼的主要位置。在渲染幀之前以及計算動畫之前都會調(diào)用 Update 函數(shù)。

物理引擎也采用與幀渲染類似的方式以離散時間步驟進行更新。在每次物理更新之前都會調(diào)用一個稱為?FixedUpdate?的單獨事件函數(shù)。由于物理更新和幀更新不會以相同頻率進行,所以如果將物理代碼放在 FixedUpdate 函數(shù)而不是 Update 中,此代碼將產(chǎn)生更準確的結果。

為場景中的所有對象調(diào)用 Update 和 FixedUpdate 函數(shù)之后以及計算所有動畫之后,如果能進行其他更改,也會很有用。一個例子是攝像機應該聚焦于目標對象;必須在目標對象移動后才能調(diào)整攝像機的方向。另一個例子是腳本代碼應該覆蓋動畫的效果(例如,讓角色的頭部看向場景中的目標對象)??墒褂?LateUpdate?函數(shù)來處理這些類型的情況。

初始化事件

如果能在游戲運行過程中進行任何更新之前調(diào)用初始化代碼,通常會很有用。在第一幀之前或開始對象的物理更新之前需要調(diào)用?Start?函數(shù)。場景加載時會為場景中的每個對象調(diào)用?Awake?函數(shù)。請注意,雖然各種對象的 Start 和 Awake 函數(shù)的調(diào)用順序是任意的,但在調(diào)用第一個 Start 之前,所有 Awake 都要完成。這意味著 Start 函數(shù)中的代碼可以利用先前在 Awake 階段執(zhí)行的其他初始化。

GUI 事件

Unity 有一個系統(tǒng)用于渲染場景中主要操作的 GUI 控件,并響應對這些控件的點擊。此代碼的處理方式與正常的幀更新有些不同,因此應將此代碼置于定期調(diào)用的?OnGUI?函數(shù)中。

此外,還可以檢測場景中出現(xiàn)的游戲對象上發(fā)生的鼠標事件。使用此功能可以定位武器或顯示當前在鼠標指針下的角色的相關信息。借助一系列 OnMouseXXX 事件函數(shù)(例如?OnMouseOver、OnMouseDown)可以讓腳本對用戶的鼠標操作做出反應。例如,如果指針位于特定對象上時按下鼠標按鈕,則會調(diào)用該對象的腳本(如果存在)中的 OnMouseDown 函數(shù)。

物理事件

物理引擎將通過調(diào)用該對象的腳本上的事件函數(shù)來報告對象的碰撞情況。在進行接觸、保持接觸和中斷接觸時,將調(diào)用?OnCollisionEnter、OnCollisionStay?和?OnCollisionExit?函數(shù)。對象的碰撞體配置為觸發(fā)器(即,碰撞體只檢測某物何時進入而不進行物理反應)時,將調(diào)用相應的?OnTriggerEnter、OnTriggerStay?和?OnTriggerExit?函數(shù)。如果在物理更新期間檢測到多次接觸,可能連續(xù)多次調(diào)用這些函數(shù),因此會將一個參數(shù)傳遞給函數(shù),從而提供碰撞的詳細信息(位置、進入對象標識等)。


Unity-事件函數(shù)的評論 (共 條)

分享到微博請遵守國家法律
富顺县| 石狮市| 牡丹江市| 靖安县| 广饶县| 纳雍县| 北川| 湘潭市| 哈巴河县| 扎兰屯市| 扶风县| 宜良县| 玉林市| 双桥区| 屏东县| 汝城县| 手游| 双柏县| 南宫市| 山西省| 扬中市| 绥芬河市| 新乡市| 阆中市| 黑水县| 卢氏县| 张北县| 瑞金市| 从化市| 揭阳市| 九江市| 娄底市| 长岭县| 三河市| 阿图什市| 灵璧县| 浠水县| 道真| 常州市| 罗源县| 迭部县|