首先附上原文地址:https://unity3d.com/cn/learn/tutorials/temas/best-practices/guide-optimizing-unity-ui
? ? ? ? 優(yōu)化UGUI是一門藝術(shù)。硬性規(guī)定非常少,但是每種情況都必須參照系統(tǒng)的運行原理仔細評估。UGUI的優(yōu)化核心是draw calls和batching花費的平衡。盡管運用一些常識技術(shù)可以減少前者或者后者,但是一些復雜的UI必須要做權(quán)衡。
? ? ? ? 誠然,正如其他地方的做法一樣,UGUI的優(yōu)化常識應該從性能分析開始。在開始嘗試優(yōu)化UGUI系統(tǒng)之前最主要的工作就是準確定位性能問題產(chǎn)生的原因。UGUI的開發(fā)者經(jīng)常遇到四類問題:
? ? ? ? 1.GPU片段著色器利用率過高(也就是填充率過渡使用)。
? ? ? ? 2.CPU時間過長的花費于rebuild一個Canvas的batch上。
? ? ? ? 3.過多的Canvas的batch數(shù)量引發(fā)過多的rebuild(dirty太多)。
? ? ? ? 4.過多的CPU時間花費在建立頂點上(通常來自文本)。
? ? ? ? 理論上,可以創(chuàng)建一個性能完全受到發(fā)送到GPU的drawcall數(shù)量限制的UGUI,然而實際上任何GPU因為drawcall過載的項目更傾向于被填充率過度使用限制。
? ? ? ? 本指南將討論UGUI底層的概念、算法和代碼,以及常見問題和解決方法。總共分為五章:
? ? ? ? 1."UGUI基礎(chǔ)理論章節(jié)"定義了UGUI的特定術(shù)語和執(zhí)行渲染UI的基礎(chǔ)過程,包括對batch的幾何體的build。強烈建議讀者從本章開始。
? ? ? ? 2."UGUI的分析工具章節(jié)",探討通過開發(fā)者可以使用的多種工具收集性能信息。
? ? ? ? 3."填充率、Canvas和輸入章節(jié)"討論了改善UGUI的Canvas和輸入組件性能的方法。
? ? ? ? 4."UI控制章節(jié)"討論了Text、ScrollView及其他特殊組件的優(yōu)化,連同一些不適合放在其他地方的技術(shù)。
? ? ? ? 5."其他技術(shù)和提示章節(jié)"討論了一些不適合放在其他地方的問題,包括一些對UI系統(tǒng)中"陷阱"的提示和解決方法。