Unity3D脚本概述
生活随笔
收集整理的這篇文章主要介紹了
Unity3D脚本概述
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Unity腳本概述
與其他常用的平臺有所不同,Unity中的腳本程序如果要起作用,主要途徑為將腳本附加到特定的游戲?qū)ο笊稀_@樣腳本中不同的方法在特定的情況下會被調(diào)用,實現(xiàn)特定的功能。
在Unity腳本中,各事件函數(shù)的功能和大體的執(zhí)行順序如下:
1、Awake
2、Start
Start方法在Awake之后執(zhí)行,在腳本的生命周期中只執(zhí)行一次。由于Awake和Start函數(shù)的特性與c#中的構(gòu)造函數(shù)類似(一般情況下,在腳本的生命周期中只執(zhí)行一次),所以在Unity中也常用來初始化類的成員變量。這個方法在游戲場景加載時被調(diào)用,在該方法內(nèi)可以寫一些游戲場景初始化之類的代碼。3、FixedUpdate
FixedUpdate用于固定頻率更新。這個方法會在固定的物理時間步調(diào)調(diào)用一次。這里也是基本物理行為代碼執(zhí)行的地方。通常情況下下,FixedUpdate()比Update()更頻繁地調(diào)用。當幀率較低時,在某一幀的時間間隔內(nèi)比Update可能會被調(diào)用多次;而當幀率很高時,在某一幀的時間間隔內(nèi)FixedUpdate可能根本不會調(diào)用。還有一點,在Unity中,若設(shè)置Time Scale值為0,可以實現(xiàn)動力學(xué)特性的暫停,即所有的FixedUpdate中的代碼都不會執(zhí)行。4、Update
Update用于正常更新,即用于幀更新后同步場景狀態(tài)。此方法每幀都會由系統(tǒng)自動調(diào)用一次。大部分的游戲代碼在這里執(zhí)行,除了物理部分的代碼。在使用Update()時,對于一些變量,如速度、移動距離等通常需要乘以Time.deltaTime來抵消幀率帶來的影響,使物體狀態(tài)的改變看起來比較均勻正常。而在FixedUpdate中,由于其更新頻率固定,所以不需要采用Time.deltaTime來修正狀態(tài)改變頻率。5、LateUpdate
LateUpdate用于延遲更新,此方法在Update()之后執(zhí)行,每一幀調(diào)用一次。6、OnGUI
OnGUI用來繪制用戶交互界面,每一幀會調(diào)用多次。其中,與布局(Layout)和重匯(Repaint)相關(guān)的事件會被優(yōu)先處理,然后是鍵盤事件和鼠標事件。7、OnDestroy
OnDestroy在當前腳本被銷毀時調(diào)用。若在腳本中動態(tài)分配了內(nèi)存,可以再OnDestroy()中進行釋放。 同時,開發(fā)人員在有需要的情況下,還可以重寫一些處理特定事件的回調(diào)方法,這類方法一般以O(shè)n前綴開頭,如OnCollisionEnter方法(此方法在系統(tǒng)檢測到碰撞開始時回調(diào))等。Unity官方提供的事件順序圖:
1、繼承自MonoBehaviour類Unity中所有掛載到游戲?qū)ο笊系哪_本中的類必須繼承MonoBehaviour類(直接的或者間接地),MonoBehaviour定義了各種回調(diào)方法,如Start、Update等。2、類名字必須匹配文件名C#的類名需要手動編寫,而且類名必須和文件名相同,否則當腳本掛載到游戲?qū)ο髸r,在控制臺會報錯。3、使用Awake或Start方法初始化用于初始化腳本的代碼必須置于Awake或Start方法中。兩者不同之處在于Awake在加載場景時運行;Start方法是在第一次調(diào)用Update或FixedUpdate方法之前被調(diào)用;Awake運行在所有Start方法之前。4、Unity腳本中的協(xié)同程序有不同的語法規(guī)則(1)協(xié)程的返回值必須是Enumerator。(2)協(xié)程的參數(shù)不能加關(guān)鍵字ref或out。(3)在C#腳本中,必須通過StartCoroutine來啟動協(xié)程。(4)yield語句要用yield return 來代替。(5)在函數(shù)Update和FixedUpdate中,不能使用yield語句,但可以啟動協(xié)程。5、只有滿足特定情況變量才能顯示在屬性查看器中只有序列化的成員才能顯示在屬性查看器中,如果屬性想在屬性查看器中顯示,其必須是public類型的。6、盡量避免使用構(gòu)造函數(shù)不要在構(gòu)造函數(shù)中初始化任何變量,要用Awake或Start方法來實現(xiàn)。即便是在編輯模式,Unity會自動調(diào)用構(gòu)造函數(shù)。7、調(diào)試Unity中C#代碼的調(diào)試與傳統(tǒng)的C#調(diào)試有所不同。Unity自帶了完善的調(diào)試功能,在Unity中的控制臺(Console)中包含了當前的全部錯誤,雙擊這個錯誤,可以自動跳轉(zhuǎn)到默認的腳本編輯器中,然后光標會在錯誤所對應(yīng)的行首跳動。Unity中的坐標系
一般情況下,在Unity中,x軸為紅色的軸表示左右,y軸為綠色的軸表示上下,z軸為藍色的軸表示前后。總結(jié)
以上是生活随笔為你收集整理的Unity3D脚本概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(1990)vue之电商管理系统
- 下一篇: oracle之基本的sql_select