標籤:blog http 使用 資料 2014 art
unity3D 對於移動平台的支援無可厚非,但是也有時候用Unity3D 開發出來的應用、遊戲在移動終端上的運行有著明顯的效率問題,比如卡、畫質等各種問題。自己在做遊戲開發的時候偶有所得。對於主要影響效能的因素做個總結。
主要因素有:
1. Saved by batching 值過大 ---- > 這個值主要是針對Mesh的批處理,這個值越高,應用就越卡
2. Drawcall 值過大 ---- > Drawcall 值過大,所需要的 GPU 的處理效能較高,從而導致CPU的計算時間過長,於是就卡了
3. 點、面過多 ---- > 點、面過多,GPU 根據不同面的效果展開計算,並且CPU計算的資料也多,所以效果出來了,但是卡巴斯基
由於 Saved by batching 和 Drawcall 值過大所引起的卡的問題我所做的最佳化方式有:
1. 對於模型 :Mesh 合并,有個不錯的外掛程式(DrawCall Minimizer ---> 直接上Asset Store 下載即可,免費的,而且有文檔,很容易上手)
2. 對於UI : 盡量避免使用Unity3D內建的 GUI 換用 NGUI或者EZGUI;因為這兩個UI外掛程式對於UI中的圖片處理是將UI圖片放置在一個 Atlas 中,一個 Atlas 對應一個Drawcall
3. 對於燈光: 可以使用 Unity3D 內建的 Lightmapping 外掛程式來烘焙情境中的燈光效果到物體材質上
4. 對於情境: 可以使用 Unity3D 內建的 Occlusion Culling 外掛程式把靜止不動的情境元素烘焙出來
4. 對於特效:盡量把材質紋理合并
對於Unity3D 在移動終端上支援的Drawcall 數到底多少,主要是跟機子效能有關的,當然也不是說值小效能就一定沒問題(本人親測,也有17就卡的,主要是模型材質紋理過大所引起的),目前我做的是70左右的,還OK,挺正常的
http://blog.csdn.net/jeksonal/article/details/8804196