Unity性能优化的N种武器
?
貼圖:
l??控制貼圖大小,盡量不要超過?1024 x1024;
l??盡量使用2的n次冪大小的貼圖,否則GfxDriver里會(huì)有2份貼圖;
l??盡量使用壓縮格式減小貼圖大小;
l??若干種貼圖合并技術(shù);
l??去除多余的alpha通道;
l??不同設(shè)備使用不同的紋理貼圖,分層顯示;
?
模型:
l??盡量控制模型的面數(shù),小于1500會(huì)比較合適;
l??不同設(shè)備使用不同的模型面數(shù);
l??盡量保持在30根骨骼內(nèi);
l??一個(gè)網(wǎng)格不要超過3個(gè)material;
?
動(dòng)畫:
l??N種動(dòng)畫壓縮方法;
l??盡量減少骨骼數(shù)量;
?
聲音:
l??采用壓縮MP3?和?wav;
?
資源方面的優(yōu)化:
l??使用?Resource.Load?方法在需要的時(shí)候再讀取資源;
l??各種資源在使用完成后,盡快用Resource.UnloadAsset和UnloadUnusedAsset卸載掉;
l??靈活運(yùn)用AssetBundle的Load和Unload方法動(dòng)態(tài)加載資源,避免主要場(chǎng)景內(nèi)的初始化內(nèi)存占用過高;(實(shí)現(xiàn)起來真的很難…)
l??采用www加載了AssetBundle后,要用www.Dispose?及時(shí)釋放;
l??在關(guān)卡內(nèi)謹(jǐn)慎使用DontDestroyOnLoad,被標(biāo)注的資源會(huì)常駐內(nèi)存;
?
代碼的優(yōu)化:
l??盡量避免代碼中的任何字符串連接,因?yàn)檫@會(huì)給GC帶來太多垃圾;
l??用簡(jiǎn)單的“for”循環(huán)代替“foreach”循環(huán);
l??為所有游戲內(nèi)的動(dòng)態(tài)物體使用內(nèi)存對(duì)象池,可以減少系統(tǒng)開銷和內(nèi)存碎片,復(fù)用對(duì)象實(shí)例,構(gòu)建自己的內(nèi)存管理模式,減少Instantiate和Destory;
l??盡量不使用LINQ命令,因?yàn)樗鼈円话銜?huì)分配中間緩器,而這很容易生成垃圾內(nèi)存;
l??將引用本地緩存到元件中會(huì)減少每次在一個(gè)游戲?qū)ο笾惺褂?“GetComponent” 獲取一個(gè)元件引用的需求;
l??減少角色控制器移動(dòng)命令的調(diào)用。移動(dòng)角色控制器會(huì)同步發(fā)生,每次調(diào)用都會(huì)耗損較大的性能;
l??最小化碰撞檢測(cè)請(qǐng)求(例如ray casts和sphere checks),盡量從每次檢查中獲得更多信息;
l??AI邏輯通常會(huì)生成大量物理查詢,建議讓AI更新循環(huán)設(shè)置低于圖像更新循環(huán),以減少CPU負(fù)荷;
l??要盡量減少Unity回調(diào)函數(shù),哪怕是空函數(shù)也不要留著;(例如空的Update、FixedUpdate函數(shù))
l??盡量少使用FindObjectsOfType函數(shù),這個(gè)函數(shù)非常慢,盡量少用且一定不要在Update里調(diào)用;
l??千萬一定要控制mono堆內(nèi)存的大小;
?
摘自《騰訊大咖說:騰訊是如何做Unity手游性能優(yōu)化的》
原文地址:http://wetest.qq.com/lab/view/108.html
轉(zhuǎn)載于:https://www.cnblogs.com/fws94/p/6367471.html
總結(jié)
以上是生活随笔為你收集整理的Unity性能优化的N种武器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android之封装好的异步网络请求框架
- 下一篇: Regular Exprassion--