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