Unity優化技巧,隨手筆記

最近由於換工作幾輪面試總結下來的一點優化知識點 . 爲了方便以後記憶 , 特寫此博客管理留存 ,
一. Unity內存優化技巧
1.代碼方面 :

1.1:對於需要頻繁修改替換的字符串 , 儘量使用”stringbuild”代替”string”.

1.3:切記使用”WWW”類加載資源或對文件夾進行操作時時 , 當加載或操作完一定要記得卸載關閉 , 及時釋放申請的內存

1.4:切記不要在Update、FixUpdate或較高調用頻率的函數中開闢堆內存 . 如:new class/array 等 , 這會對內存和性能均造 成非常大的傷害.
2.資源方面

2.1:圖片的控制: 1. 圖集的長寬儘量爲2的n次冪 , 因爲圖形學中只識別2的n次冪的大小,如果不足則會補足 , 這是一段非常耗時耗內存的 .

2.1:圖片的壓縮格式: Android : 如果帶Alpha 我們一般選擇 ETC4 bits+ 一張帶Alpha通道的 ETC4 bits圖片 . IOS 則選擇: PVRTC 4 bits 壓縮格式 , 或者一些背景圖需要保證不失幀會選擇 Automatic 16 bits / Automatic Compressed

2.3:UI圖片只要對效果沒有很大的影響 , 能不帶Alpha則不帶Alpha .

2.4:減少模型的片面數 , 骨骼數 , 貼圖的大小等

2.5:使用shader處理一些難處理的特效

二.Unity DrawCall優化

Unity對DrawCall的優化爲我們提供了兩種優化方案 , 1. Dynamic batch(動態合批) 2. Static batch(靜態合批) , 對次我們需要根據項目的真是需求去取捨

1.Dynamic Batch : 當物體總面數小於300的情況下(無論是靜態還是動態) , 使用相同的材質球的情況下 , Unity 會將其合併成一個Batch , 送往GPU渲染.

2.Static Batch : 是將標明爲 Static 的靜態物件 , 使用相同的材質球的情況下 , Unity會自動的將物體合併爲一個Batch, 送往GPU , 這對我們在項目中起到了非常巨大的幫助.

優化方式:

1.材質的複用優化 : 在項目中我們應儘量遵循材質共享複用的原則 , 減少材質的數量 , 以減少DrawCall的產生.

2.將一些不會移動的物體勾選爲static , 以便合批處理.

3.在打包UI圖集時 , 注意處理分類 . 將一個模塊的UI打包到一個圖集中 , 使得在此模塊中只需要將次圖集送往GPU渲染一次產生一個DrawCall , 避免反覆的使用不同的圖集材質球 , 導致多次渲染.

3.管理好UI界面的特效 UI 層級 , 以便控制圖片的渲染順序 , 讓程序在特定的時間只需要將對應的層級使用到的圖集送往GPU渲染 , 減少DrawCall產生.

記錄到此 , 待補充 …

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章