Unity3d性能優(yōu)化總結(jié)

Unity3D 性能優(yōu)化

一、程序方面

01、務(wù)必刪除腳本中為空或不需要的默認(rèn)方法;

02、只在一個(gè)腳本中使用OnGUI方法;

03、避免在OnGUI中對變量、方法進(jìn)行更新、賦值,輸出變量建議在Update內(nèi);

04、同一腳本中頻繁使用的變量建議聲明其為全局變量,腳本之間頻繁調(diào)用的變量或方法建議聲明為全局靜態(tài)變量或方法;

05、不要去頻繁獲取組件,將其聲明為全局變量;

06、數(shù)組、集合類元素優(yōu)先使用Array,其次是List;

07、腳本在不使用時(shí)腳本禁用之,需要時(shí)再啟用;

08、可以使用Ray來代替OnMouseXXX類方法;

09、需要隱藏/顯示或?qū)嵗瘉砘厍袚Q的對象,盡量不要使用SetActiveRecursively或active,而使用將對象遠(yuǎn)遠(yuǎn)移出相機(jī)范圍和移回原位的做法;

10、盡量少用模運(yùn)算和除法運(yùn)算,比如a/5f,一定要寫成a*0.2f。

11、對于不經(jīng)常調(diào)用或更改的變量或方法建議使用Coroutines & Yield;

12、盡量直接聲明腳本變量,而不使用GetComponent來獲取腳本;

iPhone

13、盡量使用整數(shù)數(shù)字,因?yàn)閕Phone的浮點(diǎn)數(shù)計(jì)算能力很差;

14、不要使用原生的GUI方法;

15、不要實(shí)例化(Instantiate)對象,事先建好對象池,并使用Translate“生成”對象;

二、模型方面

01、合并使用同貼圖的材質(zhì)球,合并使用相同材質(zhì)球的Mesh;

02、角色的貼圖和材質(zhì)球只要一個(gè),若必須多個(gè)則將模型離分離為多個(gè)部分;

02、骨骼系統(tǒng)不要使用太多;

03、當(dāng)使用多角色時(shí),將動(dòng)畫單獨(dú)分離出來;

04、使用層距離來控制模型的顯示距離;

05、陰影其實(shí)包含兩方面陰暗和影子,建議使用實(shí)時(shí)影子時(shí)把陰暗效果烘焙出來,不要使用燈光來調(diào)節(jié)光線陰暗。

06、少用像素?zé)艉褪褂孟袼責(zé)舻腟hader;

08、如果硬陰影可以解決問題就不要用軟陰影,并且使用不影響效果的低分辨率陰影;

08、實(shí)時(shí)陰影很耗性能,盡量減小產(chǎn)生陰影的距離;

09、允許的話在大場景中使用線性霧,這樣可以使遠(yuǎn)距離對象或陰影不易察覺,因此可以通過減小相機(jī)和陰影距離來提高性能;

10、使用圓滑組來盡量減少模型的面數(shù);

11、項(xiàng)目中如果沒有燈光或?qū)ο笤谝苿?dòng)那么就不要使用實(shí)時(shí)燈光;

12、水面、鏡子等實(shí)時(shí)反射/折射的效果單獨(dú)放在Water圖層中,并且根據(jù)其實(shí)時(shí)反射/折射的范圍來調(diào)整;

13、碰撞對效率的影響很小,但碰撞還是建議使用Box、Sphere碰撞體;

14、建材質(zhì)球時(shí)盡量考慮使用Substance;

15、盡量將所有的實(shí)時(shí)反射/折射(如水面、鏡子、地板等等)都集合成一個(gè)面;

16、假反射/折射沒有必要使用過大分辨率,一般64*64就可以,不建議超過256*256;

17、需要更改的材質(zhì)球,建議實(shí)例化一個(gè),而不是使用公共的材質(zhì)球;

18、將不須射線或碰撞事件的對象置于IgnoreRaycast圖層;

19、將水面或類似效果置于Water圖層

20、將透明通道的對象置于TransparentFX圖層;

21、養(yǎng)成良好的標(biāo)簽(Tags)、層次(Hieratchy)和圖層(Layer)的條理化習(xí)慣,將不同的對象置于不同的標(biāo)簽或圖層,三者有效的結(jié)合將很方便的按名稱、類別和屬性來查找;

22、通過Stats和Profile查看對效率影響最大的方面或?qū)ο?,或者使用禁用部分模型的方式查看問題到底在哪兒;

23、使用遮擋剔除(Occlusion Culling)處理大場景,一種較原生的類LOD技術(shù),并且能夠“分割”作為整體的一個(gè)模型。

三、其它

場景中如果沒有使用燈光和像素?zé)?,就不要使用法線貼圖,因?yàn)榉ň€效果只有在有光源(Direct Light/Point Light/Angle Light/Pixel Light)的情況下才有效果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容