Unity常用API學習筆記

腳本生命週期函數

Reset:在用戶點擊檢視面板的Reset按鈕或者首次添加該組件時被調用。此函數只在編輯模式下被調用。
Reset最常用於在檢視面板中給定一個默認值。

Awake(一次):Awake在所有對象被初始化之後調用,用於在遊戲開始之前初始化變量或遊戲狀態。在腳本整個生命週期內Awake僅被調用一次。Awake不能用來執行協同程序。
每個遊戲物體上的Awake以隨機的順序被調用。所以在一般時候,用Awake來設置腳本間的引用,然後用Start來傳遞信息。

OnEnable:在Awake之後調用。控制腳本中組件的啓動與禁用。
例如:this.enable=false,則會直接跳轉到OnDisable方法執行一次,其它的任何方法,將不再被執行。

Start(一次):Start函數總是在Awake函數之後調用。Start在生命週期中只被調用一次。
Start和Awake的不同是Start只在腳本實例被啓用時調用。你可以按需調整延遲初始化代碼,協調初始化順序。

FixedUpdate(每幀):固定幀(固定的時間間隔,不受幀率(FPS)影響)更新,更新頻率默認爲0.02s。
FixedUpdate比較適用於物理引擎的計算,因爲是跟每幀渲染有關。

Update(每幀):正常幀更新,每一幀都執行,用於更新邏輯。
Update比較適合做控制。如果卡幀了Update就不會再執行,而FixedUpdate則繼續執行。

LateUpdate(每幀):在所有Update函數調用後被調用,和fixedupdate一樣都是每一幀都被調用執行。
LateUpdate可用於調整腳本執行順序。例如:相機跟隨就可以用這個函數,即人物移動在Update中實現,相機跟隨在LateUpdate()中實現,播放後的效果是:角色移動發生在前,相機移動緊跟其後。(如果相機也在Update裏執行,就可能出現攝像機已經推進了,但是視角里還未有角色的空幀出現。)

OnGUI(每幀)在渲染和處理GUI事件時調用。每幀都執行。
在界面顯示一個button或label時常常用到它。

OnDisable:腳本被卸載時,OnDisable將被調用(腳本不會被銷燬)。OnDisable不能用於協同程序。
常用於一些用於清理的事件。

OnDestroy:當MonoBehaviour將被銷燬時,這個函數被調用。OnDestroy只會在預先已經被激活的遊戲物體上被調用。OnDestroy也不能用於協同程序



作者:FLY旳影子
鏈接:https://www.jianshu.com/p/32ce8768607f
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

Time類

只讀:
Time.time:表示從遊戲開發到現在的時間,會隨着遊戲的暫停而停止計算。
Time.deltaTime:表示從上一幀到當前幀的時間,以秒爲單位。
Time.unscaledDeltaTime:不考慮timescale時候與deltaTime相同,若timescale被設置,則無效。
Time.timeSinceLevelLoad:表示從當前Scene開始到目前爲止的時間,也會隨着暫停操作而停止。
Time.unscaledTime:不考慮timescale時候與time相同,若timescale被設置,則無效。
Time.fixedDeltaTime:表示以秒計間隔,在物理和其他固定幀率進行更新,在Edit->ProjectSettings->Time的Fixed Timestep可以自行設置。
Time.realtimeSinceStartup: 表示自遊戲開始後的總時間,即使暫停也會不斷的增加。
Time.frameCount:總幀數

可讀可寫:
Time.fixedTime:表示以秒計遊戲開始的時間,固定時間以定期間隔更新(相當於fixedDeltaTime)直到達到time屬性。
Time.SmoothDeltaTime:表示一個平穩的deltaTime,根據前 N幀的時間加權平均的值。
Time.timeScale:時間縮放,默認值爲1,若設置<1,表示時間減慢,若設置>1,表示時間加快,可以用來加速和減速遊戲,非常有用。
Time.captureFramerate:表示設置每秒的幀率,然後不考慮真實時間。

GameObject類

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章