unity 继承会调用start吗_Unity 继承MonoBehaviour脚本 执行顺序 详解
先看結果
Awake ->OnEnable-> Start ->-> FixedUpdate-> Update ?-> LateUpdate ->OnGUI ->OnDisable ->OnDestroy
如果Script0,?Script1,Script2腳本上都有Awake OnEnable Start這些函數
執行順序
Script0,?Script1,Script2腳本上Awake函數
Script0,?Script1,Script2腳本上OnEnable函數
Script0,?Script1,Script2腳本上Start函數
。。。。。。。。。。
如果一定要明確Script0的Awake函數執行順序高于Script1,Script2的Awake函數
則需要設置腳本執行的順序
點擊紅色框的+號 添加對應的腳本
*數值越小的腳本將先執行,如果沒有設置的腳本將按默認的順序執行。
詳解
Awake(執行一次)
官方解釋:當一個腳本實例被載入時Awake被調用
最最最最開始被調用
執行代碼
Instantiate("實例化的預設");
*同時預設上Inspector紅色圈為勾選狀態
預設上的腳本會立馬執行Awake函數;
OnEnable(執行多次)
官方解釋:當對象變為可用或激活狀態時此函數被調用。
每次激活對象時 對象上繼承MonoBehaciour上腳本 會調用一次
執行代碼
gameObject.SetActive(false);//先隱藏對象
gameObject.SetActive(true);//顯示對象
或
enabled = false;//先關閉啟用
enabled= true;//開啟啟用
*都會立馬會執行OnEnable函數
*函數里適合放適配的邏輯
Start(執行一次)
官方解釋:Start僅在Update函數第一次被調用前調用。
紅色框勾選對應繼承MonoBehaciour腳本的繼承變量enabled
enabled 官方解釋:啟用行為被更新,禁用行為不更新。
即enabled == false 不執行Update函數?enabled == true 執行Update函數
*如果運行前不勾選紅色框勾選或者在Awake函數里調用?enabled == false 則不會執行Start函數。
*Start函數適合放界面初始化 設置文本內容 過去子級對象 邏輯
FixedUpdate(執行N次)
官方解釋:?當MonoBehaviour啟用時,其 FixedUpdate 在每一幀被調用。
FixedUpdate時間在Edit->ProjectSettings->Time修改
最好不要去修改這個時間
*FixedUpdate函數適合調用Rigidbody邏輯
Update(執行N次)
官方解釋:?當MonoBehaviour啟用時,其Update在每一幀被調用。
實現各種游戲行為最常用的函數
*當enabled == false 不執行Update函數
LateUpdate(執行N次)
官方解釋:?當Behaviour啟用時,其LateUpdate在每一幀被調用。
*先執行Updatee然后執行lateUpdate。
OnGUI(執行N次)
官方解釋:?渲染和處理GUI事件時調用。
OnDisable(執行多次)
官方解釋:?當對象變為不可用或非激活狀態時此函數被調用。
于OnEnable相對應 一個是打開后會調用 一個是關閉后調用。
OnDestroy(執行多次)
官方解釋:?當MonoBehaviour將被銷毀時,這個函數被調用。
執行
Destroy(gameObject);
掛載在gameObject上的腳本立馬會執行OnDestroy函數。
總結
以上是生活随笔為你收集整理的unity 继承会调用start吗_Unity 继承MonoBehaviour脚本 执行顺序 详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的函数的对象属性_Pytho
- 下一篇: k8s查看pod的yaml文件_【大强哥