Cocos Creator 常用優(yōu)化技巧匯總
今天給大家整理一些cocos creator 常用的一些優(yōu)化技巧和手段,希望對(duì)大家的項(xiàng)目有所幫助。
一: 資源包體大小優(yōu)化:
(1)去掉不用的資源,去掉不用的代碼模塊;
(2)壓縮png圖片,在清晰度課接受的范圍內(nèi)讓圖片的體積更小;
(3)壓縮聲音數(shù)據(jù),多聲道變單聲道,降低采樣率;
(4) 在需求的允許下降低圖片的部分精度,比如,1920x1080的圖片---> 960x540;
(5) 特殊的字體,不要直接帶字體文件,而是使用美術(shù)字來(lái)替代, 盡可能不要帶字體文件;
二:圖集打包:
我們很多人喜歡用散圖,這樣,會(huì)影響繪制效率,所以一般我們會(huì)把散圖達(dá)成圖集,一次裝載到顯卡, 同時(shí)多個(gè)物體可以共用一個(gè)drawcall來(lái)批量完成繪制, 使用圖集的時(shí)候,注意同時(shí)使用的圖片放到一起,每個(gè)場(chǎng)景都要用的圖片放一起。不要把不同時(shí)會(huì)使用的圖片放到圖集里面。這樣不利于資源卸載
三: 動(dòng)畫(huà)優(yōu)化:
內(nèi)存大小優(yōu)化: 如果動(dòng)畫(huà)內(nèi)存過(guò)多,比如幀動(dòng)畫(huà),可以考慮使用骨骼動(dòng)畫(huà)來(lái)代替幀動(dòng)畫(huà);
運(yùn)行性能優(yōu)化: 大量骨骼動(dòng)畫(huà),可能導(dǎo)致幀率較低,可以考慮在允許的范圍內(nèi)用幀動(dòng)畫(huà)替換;
避免動(dòng)畫(huà)中綁定代碼: 動(dòng)畫(huà)編輯器動(dòng)畫(huà)時(shí),盡量不要使用動(dòng)畫(huà)事件來(lái)調(diào)用代碼,避免不必要的代碼管理麻煩。
四:資源管理:
(1) 不用的資源,在場(chǎng)景切換的時(shí)候,如果資源吃緊,可以把他卸載掉;
(2)進(jìn)入到游戲場(chǎng)景之前,將接下來(lái)常用的資源,預(yù)先加載進(jìn)來(lái),避免運(yùn)行中加載出現(xiàn)"長(zhǎng)時(shí)間卡住”的現(xiàn)象, 場(chǎng)景資源多的,加資源加載過(guò)度;
(3) 對(duì)于常用的對(duì)象和物體大量的分配與釋放,可以考慮使用節(jié)點(diǎn)池來(lái)進(jìn)行緩存;
五:代碼優(yōu)化:
(1)避免在運(yùn)行時(shí)才生成數(shù)據(jù),比如地圖數(shù)據(jù),路點(diǎn)數(shù)據(jù),能離線生成的最好先離線生成出來(lái);
(2)在update中避免使用 節(jié)點(diǎn)查找等,可以考慮用變量在初始化的時(shí)候,把常用的節(jié)點(diǎn),組件保存起來(lái);
(3)每個(gè)函數(shù)盡可能保持足夠的簡(jiǎn)單, 功能單一;
(4)能自己編碼實(shí)現(xiàn)的,盡量少用大型的框架庫(kù),比如物理引擎等。能不用就不用;
(5)復(fù)雜的算法,可以考慮預(yù)先計(jì)算好,用空間換時(shí)間;
(6)代碼命名要規(guī)范,結(jié)構(gòu)要清晰;
(7)不要再界面上做過(guò)多的代碼綁定;
(8)避免使用生僻的語(yǔ)法,用法,組件等,讓代碼升級(jí)的時(shí)候更方便;
… …
六: setting.js優(yōu)化
資源放到resources文件夾下,會(huì)導(dǎo)致setting.js變大,所以,不用代碼加載的資源,千萬(wàn)別放resources文件夾下;
七:運(yùn)行時(shí)內(nèi)存優(yōu)化:
分析內(nèi)存的占用情況,內(nèi)存大頭一般都是圖片資源。
圖片在運(yùn)行時(shí)的內(nèi)存大小是固定的,和壓縮算法沒(méi)有關(guān)系,因?yàn)樽罱K要解壓出來(lái), 1920x1080大小的圖片內(nèi)存解壓開(kāi)后大約是1920x1080x4(每個(gè)像素4字節(jié)),
這個(gè)內(nèi)存占用,和你的圖片是png,還是jpg關(guān)系不大。所以可以估算處大概內(nèi)存。
根據(jù)運(yùn)行時(shí)候圖片的內(nèi)存情況,刪除不用的圖片,同時(shí)可以考慮降低部分圖片的分辨率來(lái)降低內(nèi)存占用。
運(yùn)行時(shí)后,可能節(jié)點(diǎn)越來(lái)越多,內(nèi)存越來(lái)越大,也越來(lái)越慢,把不用的節(jié)點(diǎn)都要?jiǎng)h除掉, 檢查節(jié)點(diǎn)數(shù)目,資源等;
… …
未完,敬請(qǐng)關(guān)注后續(xù)更新和項(xiàng)目實(shí)踐。