這套流程解決的問題:減少UI造成的drawcall較高(不打圖集小圖都會占用drawcall的),而且需要動態(tài)加載(因?yàn)槲覀冃枰獰岣?/p>
如何打包圖集
存放到不同的文件夾下,然后編輯器設(shè)置對應(yīng)的sprite tag 和 公用assetbundle 的名字(為下一步bundle打包做準(zhǔn)備)。
注意:開啟sprite enable功能(Project setting/Editor 下設(shè)置)
注意:Sprite Packer設(shè)置的地方需要使用DefaultPackerPolicy功能,而不要使用TightPackerPolicy功能,這個(gè)功能可能導(dǎo)致切圖有部分是臟的
如何打包圖集bundle
使用上一步制作的公用bundle 名字進(jìn)行打包即可。
注意:不要把小圖再打一次了,不然UI上的依賴可能還會找到小圖而導(dǎo)致界面上可能出現(xiàn)圖集圖片 + 小圖圖片
如何動態(tài)加載bundle
打包后的圖集assetbundle其實(shí)和其他的一樣的加載,只是這里需要先加載小圖對應(yīng)的圖集,然后在圖集中找到這個(gè)小圖,不然可能出現(xiàn)依賴丟失
的情況,事實(shí)上這個(gè)是因?yàn)閎undle加載失敗導(dǎo)致的,并不是依賴問題。
難點(diǎn)
其實(shí)如上的過程中的難點(diǎn)在于如何去區(qū)分圖片應(yīng)該放到那個(gè)文件夾的問題,放錯(cuò)了容易冗余,導(dǎo)致圖集加載過多而內(nèi)存爆炸。我們采取的原則是除非你認(rèn)為
這個(gè)圖真的是其他地方?jīng)]有用到的,不然就劃到公用圖集里面去。(感覺很難維護(hù),不知道其他項(xiàng)目有沒有好的處理方案,這里真的很僵硬)
尚未解決的
打包圖集的圖片會有些糊,即使我們使用了 truecolor 也無濟(jì)于事,目前還不清楚如何解決這個(gè)問題。