十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
對于游戲來說,流暢是最重要的條件,所以好的游戲一定會(huì)有個(gè)好的優(yōu)化,個(gè)人認(rèn)為unity3d游戲開發(fā)優(yōu)化應(yīng)從3塊下手:CPU、內(nèi)存、GPU

1.Draw Calls(CPU調(diào)用底層圖形接口):Draw Call Batching(動(dòng)批)和Static Batching (靜批)
Draw Call Batching(動(dòng)批) 滿足條件
1.一般大型手機(jī)游戲,雙核的手機(jī),Tris(面)最好小于2萬,4核的手機(jī)最好不能超過4~5萬左右
2.一般不關(guān)心模型是什么樣子,也不關(guān)心是幾個(gè)模型,只要這些模型的頂點(diǎn)數(shù)少于300個(gè),并且用的是相同材質(zhì)且是單pass的,就能參與動(dòng)態(tài)批處理
3.縮放可能會(huì)影響bathces,也可能不影響,看unity版本,一般5.以后的版本不影響
4.只有Mesh Renderer的模型才支持動(dòng)態(tài)批處理
5.Skinned Mesh Renderer 是骨骼或者人物蒙皮渲染,是不支持動(dòng)批的
6.所有參與過燈光烘焙的物體,因?yàn)槭庆o態(tài)的,所以不能動(dòng)態(tài)批處理
Static Batching (靜批)(一般能用靜批的盡量用靜批)滿足條件
1.必須是靜態(tài)(對于有沒有烘焙,不關(guān)心)
2.無頂點(diǎn)要求
3.和shader無關(guān)(單pass或者雙pass都無關(guān)),只和材質(zhì)有關(guān)
4.靜態(tài)物體是不支持縮放的,如果進(jìn)行縮放,則不會(huì)靜態(tài)批處理
移動(dòng)端Draw Calls 優(yōu)化:(重要)
1.建議Draw Calls 在100左右(雙核處理器) ,四核處理器建議在200~300
2..物理方面(組件和引擎)
1.碰撞(調(diào)用最底層物理引擎,消耗cpu性能),優(yōu)先使用box collider,盡量不用mesh collider。
2.碰撞層(不需要碰撞的層,取消打勾,這個(gè)比較重要)
3.幀數(shù)優(yōu)化(移動(dòng)端建議0.033,就是1秒鐘30幀。pc端性能普遍較好,建議0.01)(至于VR和AR建議次數(shù)更多,這個(gè)值和fps相關(guān)聯(lián)的,就這一句話,可能是VR和AR開發(fā)人員的福音。)
4.建議選擇Don‘t Sync(關(guān)閉垂直同步),然后在C#游戲入口代碼里面的Awake或者Start里面寫上
Application.targetFrameRate = XX;(移動(dòng)端建議30,PC端建議60.這個(gè)重要的不要不要的,為什么移動(dòng)的幀數(shù)是30?,不深入,總之不要太高,否則消耗性能不說,cpu還會(huì)發(fā)燙)
【步驟3和4請同時(shí)操作】
3.代碼優(yōu)化
1.少用反射,ios開發(fā)的可以忘了反射(不是不用哈,少用)
2.務(wù)必在工程發(fā)布前刪除代碼里面的Debug.Log和print (重要,這2個(gè)比較消耗性能)
3.不要頻繁創(chuàng)建或?qū)嵗蜾N毀對象,請使用對象池(Pool)(重要)。
4.同一腳本中頻繁使用的變量建議聲明其為全局變量,腳本之間頻繁調(diào)用的變量或方法建議聲明為全局靜態(tài)變量或方法。(重要)
5.不要去頻繁獲取組件,將其聲明為全局變量.
6.用簡單的“for”循環(huán)代替“foreach”循環(huán)。
7.數(shù)組、集合類元素優(yōu)先使用Array,其次是List,少用ArrayList(會(huì)拆裝箱操作)。
8.在循環(huán)語句力里面,不要直接訪問gameobject的tag屬性。比如if (go.tag == “human”)最好換成if (go.CompareTag (“human”))。因?yàn)樵L問物體的tag屬性會(huì)在堆上額外的分配空間。如果在循環(huán)中這么處理,會(huì)留下垃圾。
9.盡量少用模運(yùn)算和除法運(yùn)算,比如a/5f,一定要寫成a*0.2f。
10.String的相加操作,會(huì)頻繁申請內(nèi)存并釋放,導(dǎo)致gc頻繁,使用System.Text.StringBuilder代替
11.Update少用,少在Update里面做循環(huán),更少做復(fù)雜操作。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。