渲染模塊
降低DrawDall
通過批渲染來達來降低DC晕讲。-
簡化資源
- 模型面數(shù),數(shù)量
- 紋理數(shù)量
- 紋理尺寸
- 紋理格式
選擇硬件支持的紋理格式不僅可以減小內(nèi)存空間,同時也能減少加載時間辩块。對于安卓來說:ETC > RGB16bit > RGB32bit
https://blog.uwa4d.com/archives/LoadingPerformance_Texture.html
LOD
距相機較遠時荆永,使用低模渲染豆村。Occlusion Culing
剔除視域內(nèi)掌动,但被其它遮擋住的物體欧瘪,避免對這部分物體進行渲染妖碉。Culling Distance
可以針對不同層芥被,設置不同的Culling Distance欧宜。
UI模塊
- NGUI.LateUpdate
盡可能將動態(tài)UI元素和靜態(tài)UI元素分離到不同的UIPanel中(UI的重建以UIPanel為單位),從而盡可能將因為變動的UI元素引起的重構(gòu)控制在較小的范圍內(nèi)撕彤;
盡可能讓動態(tài)UI元素按照同步性進行劃分鱼鸠,即運動頻率不同的UI元素盡可能分離放在不同的UIPanel中;
控制同一個UIPanel中動態(tài)UI元素的數(shù)量羹铅,數(shù)量越多蚀狰,所創(chuàng)建的Mesh越大,從而使得重構(gòu)的開銷顯著增加职员。比如麻蹋,戰(zhàn)斗過程中的HUD運動血條可能會出現(xiàn)較多,此時焊切,建議研發(fā)團隊將運動血條分離成不同的UIPanel扮授,每組UIPanel下5~10個動態(tài)UI為宜芳室。這種做法,其本質(zhì)是從概率上盡可能降低單幀中UIPanel的重建開銷刹勃。
加載模塊
主要集中在場景切換時堪侯,要卸載舊場景還要加載新場景。
-
場景卸載
Destroy
除了卸載那些沒有標識“DontDestroyOnLoad”的資源外荔仁,還要調(diào)用所有Mono腳本中的OnDestroy方法伍宦。這部分消耗主要由OnDestroy中的代碼決定。Resources.UnloadUnusedAssets
以非Addtively方式切換場景時乏梁,引擎會自動調(diào)用此接口次洼;同時在場景加載完成后,用戶也會手動調(diào)用此接口遇骑。消耗主要取決于場景中的資源數(shù)量卖毁。
-
場景加載
資源加載
加載效率主要由加載方式,加載量落萎,資源格式(貼圖亥啦,網(wǎng)格,材質(zhì)等)等決定练链。Instantiate實例化
一方面禁悠,實例化的最大消耗在于依賴資源的加載,預加載可以解決兑宇;另一方面,腳本序列化消耗也不少粱坤,特別是有很多被SerializedField標識的變量隶糕。
代碼效率
80%的性能開銷都集中在20%的函數(shù)上。