當前位置:編程學習大全網 - 編程語言 - Unity關於性能方面的問題

Unity關於性能方面的問題

1、硬件支持優化

(1)平臺設置優化

減少FPS,在ProjectSetting-> Quality中的

VSync Count 參數會影響妳的FPS,EveryVBlank相當於FPS=60,EverySecondVBlank = 30;

這兩種情況都不符合遊戲的FPS的話,我們需要手動調整FPS,首先關閉垂直同步這個功能,然後在代碼的Awake方法裏手動設置

FPS(Application.targetFrameRate = 45;)

降低FPS的好處:

1)省電,減少手機發熱的情況;

2)能都穩定遊戲FPS,減少出現卡頓的情況。

當我們設置了FPS後,再調整下Fixed timestep這個參數,

這個參數在ProjectSetting->Time中,目的是減少物理計算的次數,來提高遊戲性能。

(2)文件格式優化

1)Android?更新不透明貼圖的壓縮格式為ETC 4bit,因為Android市場的手機中的GPU有多種,每家的GPU支持不同的壓縮格式,但他們都兼容ETC格式。iOS上盡量使用PVRTC。

2)對於透明貼圖,我們只能選擇RGBA 16bit 或者RGBA 32bit。

3)圖集大小最好不要高於1024,否則遊戲安裝之後、低端機直接崩潰、原因是手機系統版本低於2.2、超過1000的圖集無法讀取、導致。2.2 以上沒有遇見這個情況。註意手機的RAM 與 ROM、小於 512M的手機、直接放棄機型適配。

(3)Unity功能使用優化建議

Unity屏幕特效、動態的pixel光照計算(如法線)、實時的陰影,能找到替代方案就找替代方案。

2、渲染優化

(1)模型設置優化

1)合並材質球unity 3d中每倒入壹次模型就多壹個材質球,可我的這些模型都是***用壹張貼圖的就想***用壹個材質球,所以每次都要刪除再附上,很麻煩。怎麽才能合並這些材質球?采用TexturePacking吧

1、遍歷gameobject,取出material,並根據shader來將material分類

2、調用Unity自帶的PackTextures函數來合並每個shader分類中的material所對應的textures(PackTextures函數有缺陷,不過可以將就用)

3、根據合並的大的texture來更新原有模型的texture、material已經uv坐標值。

需要註意的是:需要合並的紋理應該是物體在場景中距離相近的,如果物體在場景中的距離較遠,

則不建議合並紋理,因為這樣做很有可能非但起不到優化的作用,反而降低了運行效率。?

2)mesh合並?分為2種方式合並

1.自帶的合並必須勾選靜態。

? 2. 腳本合並

優化建議(1)角色材質數2-3個 最多不要超過5個。可以采取2+3模式,2為主 3位輔助。

?(2)骨骼數量最好控制在30

?(3)面片數量根據實際需求做壹定刪減。比較低的控制在2000以下。

(4)靜態物件不需要添加Animation Component

(5)UV值範圍盡量不要超過(0, 1)區間

(6)地形長寬均盡量小於257。這是因為地形太大,會造成大量頂點數據,給妳的內存帶寬造成壹定的影響,在目前的ios設備中,內存帶寬是非常有限的,需要盡量節省。同時,如果用Unity自帶的地形,壹定也要使用Occlusion Culling,因為Unity的刷地形工具雖然方便,但卻是framekiller,刷過之後,妳會發現drawcall增加的非常多。混合紋理數量不要超過4。地形的混合操作是很耗時的,應該盡量避免。能合並的紋理盡量合並。

(2)渲染批次優化

3、代碼編程優化

  • 上一篇:河北半軸生產廠家的加工標準是什麽?
  • 下一篇:PHP網站上傳圖片自動壓縮,怎麽編程啊,求指
  • copyright 2024編程學習大全網