【Unity】Unity優化總結
阿新 • • 發佈:2019-01-25
優化概括的說可以分為:CPU,GPU,記憶體;
開發上的細節可以分為:資源,引擎,程式碼,著色器;
1.資源方面; 》動態物體;遊戲主角、怪物、NPC等; 控制面片數量 300 - 2000面片; 控制Skinned Mesh Render 為1個; 控制材質數量 1-3個; 控制骨骼數量 小於30根; 》靜態物體; 控制網格頂點數 少於500個; 標記為Static batching;》物理引擎: 碰撞體控制:儘可能使用Sphere Collider 和 Box Collider,儘量避免使用Mesh Collider; 》渲染優化; 儘可能的避免使用Alpha Test和Alpha Blend Alpha Test 的價效比較低,可能的話,使用Alpha Blend 來代替Alpha Test. 將使用Alpha Test 和Alpha Blend的畫素數降至最低; DrawCall Batching; Unity在渲染是,可以將一些物體合併,從而可以使用一個DrawCall來渲染他們,這稱為DrawCall Batching。理論上將,UntiyBatching的物體越多,則會得到個號的渲染性 能; Static Batching; Dynamic Batching; 縮放物體無法與非縮放物體進行 紋理合並Texture Patching; 遮擋剔除(Occlusion Culling):主要是對OverDraw進行優化; 》動畫 3.程式碼方面; 》對於監測的函式,可以每隔幾幀執行一次; 》通過使用InvokeRepeating函式實現定時重複呼叫,比如,啟動0.5秒後每隔1秒執行一次DoSomeThing函式; 》儘量少使用臨時變數,特別是在Update、OnGUI等實時呼叫好的函式中; 》定時進行垃圾回收; 》優化數學運算,儘量避免使用Float,而使用Int,特別是在手機遊戲中,儘量少用複雜的數學函式,比如sin,cos等函式; 》改除法為乘法,例如:使用x*0.5f而不是x/2.0f; 4.著色器Shader
某公司內部分享資料;