《Unity性能優(yōu)化》系列課程筆記——第拾壹節(jié)
UI字體
避免字體框重疊,造成合批打斷
字體網(wǎng)格重建
UIText組件發(fā)生變化時(shí)
父級(jí)對(duì)象發(fā)生變化時(shí)
UIText組件或其父對(duì)象enable/disable時(shí)
TrueTypeFontImporter
支持TTF和OTF字體文件格式導(dǎo)入

動(dòng)態(tài)字體與字體圖集
運(yùn)行時(shí),根據(jù)UIText組件內(nèi)容,動(dòng)態(tài)生成字體圖集,只會(huì)保存當(dāng)前Actived狀態(tài)的 UIText控件中的字符
不同的字體庫維護(hù)不同的Texture圖集
字體Size、大小寫、粗體、斜體等各種風(fēng)格都會(huì)保存在不同的字體圖集中(有無必要,影響圖集利用效率,一些利用不多的特殊字體可以采用圖片代替或使用Custom Font,F(xiàn)ont Assets Creater創(chuàng)建靜態(tài)字體資源)
當(dāng)前Font Texture不包含UIText需要顯示的字體時(shí),當(dāng)前Font Texture需要重建
如果當(dāng)前圖集太小,系統(tǒng)也會(huì)嘗試重建,并加入需要使用的字形,文字圖集只增不減
利用Font.RequestCharacterInTexture可以有效降低啟動(dòng)時(shí)間
UI控件優(yōu)化注意事項(xiàng)
不需要交互的UI元素一定要關(guān)閉Raycast Target選項(xiàng)
如果是較大的背景圖的UI元素建議也要使用Sprite的九宮格拉伸處理,充分減小UI Sprite大小,提高UI Atlas圖集利用率
對(duì)于不可見的UI元素,一定不要使用材質(zhì)的透明度控制顯隱,因?yàn)槟菢覷I網(wǎng)格依然在繪制,也不要采用active/deactive UI控件進(jìn)行顯隱,因?yàn)槟菢訒?huì)帶來gc和重建開銷
使用全屏的UI界面時(shí),要注意隱藏其背后的所有內(nèi)容,給GPU休息機(jī)會(huì)。
在使用非全屏但模態(tài)對(duì)話框時(shí),建議使用OnDemandRendering接口,對(duì)渲染進(jìn)行降頻。
優(yōu)化裁剪UI Shader,根據(jù)實(shí)際使用需求移除多余特性關(guān)鍵字。
滾動(dòng)視圖Scroll View優(yōu)化
使用RectMask2d組件裁剪
使用基于位置的對(duì)象池作為實(shí)例化緩存