?????個人主頁:@元宇宙-秩沅
hallo 歡迎 點(diǎn)贊?? 收藏? 留言?? 加關(guān)注?!
本文由 秩沅 原創(chuàng)
收錄于專欄:unity細(xì)節(jié)和bug
?怎么將unity編譯時和運(yùn)行時的功能隔開的問題?
??描述
-
當(dāng)編譯下執(zhí)行的代碼功能和運(yùn)行行時執(zhí)行的代碼功能同時存在時,要注意防止性能的消耗,防止編譯時的功能在運(yùn)行時也執(zhí)行
-
圖片解釋:此時獲取子物體的API因?yàn)樘匦缘脑颍诰幾g時也允許執(zhí)行,但是在運(yùn)行時,本該在編譯時的代碼會消耗性能
??解決
- 用Application.isPaly -----是否是運(yùn)行時
- 隔開
private void OnGUI()
{
foreach (ControlFather item in allContorls)
{
//1.表示沒有運(yùn)行時(編譯時)也來獲取,Start是點(diǎn)擊運(yùn)行時可以獲取
//2.避免了運(yùn)行時重復(fù)執(zhí)行該API。消耗性能
if( !Application.isPlayer)
{
allContorls = this.GetComponentsInChildren<ControlFather>();
}
item.Judge();
}
}
解決了點(diǎn)個贊,關(guān)注下吧?
??每天一學(xué)
?????十大常見的生命函數(shù)
?????Reset()://重置函數(shù),
調(diào)用情況和時間:
編譯器不運(yùn)行的情況下 和 使用腳本組件Reset功能的時候, 掛腳本的時候
調(diào)用次數(shù): 1次
????? Awake(); //蘇醒函數(shù)
調(diào)用情況和時間:
1.點(diǎn)擊運(yùn)行的時候
2.組件從失靈到激活的時候,但只調(diào)用一次
3.Instantiate方法調(diào)用的時候
調(diào)用次數(shù): 1次
?????OnEnable(); //組件調(diào)用函數(shù)
調(diào)用情況和時間: 組件從失靈到激活的時候,可多次實(shí)現(xiàn)
調(diào)用次數(shù):只要組件有失靈到激活的狀態(tài)就可調(diào)用 ,
?????Strat():
調(diào)用情況和時間: 當(dāng)游戲物體被激活,或者腳本組件被激活時調(diào)用 , (點(diǎn)擊運(yùn)行的時候也是會被激活)
調(diào)用次數(shù): 1次
?????FixedUpdate(每幀)
一般用作物理更新
調(diào)用情況和時間: FixedUpdate一般適用在相關(guān)物理引擎中。它的頻 率是0.02秒,是固定的。
調(diào)用次數(shù): 大概每秒50次左右、
FixedUpdate & Update & LateUpdate的 區(qū)別詳解
?????UpData(每幀) ;
一般用作游戲邏輯更新 update取決于電腦顯卡的性能,好的話,快,不行的話就慢,所以相比Fixed Update它具有隨機(jī)性。
調(diào)用情況和時間: 在以上生命周期函數(shù)之后,每幀調(diào)用一次
調(diào)用次數(shù): 大概每秒60次左右
變量賦值生效順序:
變量聲明直接賦值 > 檢視面板賦值 > Awake > Enable > 外部賦值 > Start
?????LateUpate(每幀):
一般用作相機(jī)更新 它的執(zhí)行順序在update的后面,一般適用于相機(jī)的跟隨,物體運(yùn)動在update中,相機(jī)跟隨在LateUpdate,這樣會減少誤差,避免出現(xiàn)不必要的瑕疵。
調(diào)用情況和時間: 在Update調(diào)用之后,并且也是每秒60幀左右(適用于物體移動后的視角跟隨)
調(diào)用次數(shù): 大概每秒60次左右
?????OnGUI(每幀)
- 它一般與界面化,渲染,UI等有關(guān),實(shí)時執(zhí)行,比如想在幕布上弄個按鈕button
?????OnDisable():
調(diào)用情況和時間: 和OnEnable差不多,但是Disable是組件從完好到失活的狀態(tài), (相當(dāng)于關(guān)閉組件的時候)
調(diào)用次數(shù): 組件從激活到失靈的時候調(diào)用(二者前提是在游戲運(yùn)行的時候)
?????OnApplicationQuit()
調(diào)用情況和時間: 當(dāng)所有游戲物體退出時調(diào)用,適用于打包的時候
調(diào)用次數(shù): 滿足以上情況便調(diào)用
?????OnDestroy();
調(diào)用情況和時間: 適用于物體的銷毀,刪除,以及游戲的停止退出時
調(diào)用次數(shù): 滿足以上情況便調(diào)用
?相關(guān)文章?
?【2023unity游戲制作-mango的冒險(xiǎn)】-開始畫面API制作
?【unity游戲制作-mango的冒險(xiǎn)】-場景搭建
?“狂飆”游戲制作—游戲分類圖鑒(網(wǎng)易游學(xué))
?本站最全-unity常用API大全(萬字詳解),不信你不收藏文章來源:http://www.zghlxwxcb.cn/news/detail-514344.html
你們的點(diǎn)贊?? 收藏? 留言?? 關(guān)注?是我持續(xù)創(chuàng)作,輸出優(yōu)質(zhì)內(nèi)容的最大動力!文章來源地址http://www.zghlxwxcb.cn/news/detail-514344.html
到了這里,關(guān)于【unity細(xì)節(jié)】—怎么將unity編譯時和運(yùn)行時的功能隔開的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!