CPU優(yōu)化
視錐體剔除贰镣,遮擋剔除
合理安排圖片和材質(zhì),使用unity批處理( 減少DrawCall)
1.合并模型
2.合并紋理
3.打圖集腳本重構(gòu)(小步快跑原則)
1.減少重復(fù)代碼。
2.拆分過大的類或方法拥娄。
3.引入外觀或抽象,減少類的耦合度,增加重用性筒占。
4.修改類名或方法名,減少不必要的注釋蜘犁。
5.屬性或方法適當(dāng)?shù)姆庋b翰苫,減少不必要的公開。
6.添加適當(dāng)?shù)淖⑨屝形淖终獬龋奖闼嘶蜃约洪喿x腳本奏窑。
7.使用“函數(shù)”或“全局變量”替換那些頻繁創(chuàng)建的臨時(shí)變量。
8.使用“狀態(tài)機(jī)”或者“多態(tài)”替換條件表達(dá)式屈扎。
...腳本優(yōu)化
1.避免頻繁地Find埃唯、GetComponent,特別是Update中助隧。
2.少使用臨時(shí)變量筑凫,特別是在Update中。
3.使用for代替foreach并村,foreach使用迭代器會(huì)產(chǎn)生GC巍实。特別是在Update中。
4.盡量不要頻繁的Instantiate和Destroy哩牍,使用對(duì)象池技術(shù)棚潦。
5.使用內(nèi)建的常量,例如Vector3.zero等
6.使用gameObject.CompareTag(“XXX”)而非gameObject.tag
7.避免頻繁的使用Distance和magnitude等方法膝昆,需要開根號(hào)丸边,較費(fèi)性能。特別是Update中荚孵。
8.使用消耗更小的運(yùn)算:例如1/5使用1*0.2來代替
9.避免在循環(huán)或者是Update中進(jìn)行string字符串操作妹窖,因?yàn)閟tring是常亮不可修改。
10.如果沒有必要每幀都處理收叶,則可以每隔幾幀處理一次
11.Ref可以多使用骄呼,傳參會(huì)多一次拷貝
12.Queue或者Stack來代替List
13.背景音樂選擇mp3壓縮格式,盡量不超過100s,盡量不要提前拖拽到場(chǎng)景內(nèi)
14.減少物理引擎計(jì)算蜓萄,盡量少加剛體隅茎。
15.釋放不使用的資源內(nèi)存。避免內(nèi)存泄露
內(nèi)存優(yōu)化
- 模型定點(diǎn)優(yōu)化
- UI優(yōu)化
1.小圖放大顯示
2.九宮格
3.圖片的復(fù)用
4.MipMaps
5.圖片尺寸盡量保證2的n次冪
GPU優(yōu)化
- 光照貼圖
- 動(dòng)態(tài)光探針嫉沽,反射探針
- LOD
- MipMaps