AssetsBundle的資源管理機制 AB包
Cocos Creator 3.x 引入了 AssetsBundle的資源管理機制,我們叫它Ab包。我們的資源管理也是基于Ab包來進(jìn)行管理。上面講解了我們的框架原則,所有的內(nèi)容都是代碼生成的,必然我們要加載資源,然后生成節(jié)點到場景。我們來分析一下碼加載的資源類型,總結(jié)了一下,分為5類:
(1)預(yù)制體Prefab: 游戲地圖預(yù)制體, 游戲角色預(yù)制體,例子預(yù)制體,UI預(yù)制體等;
(2)音樂與音效的AudioClip: 游戲中的音樂與音效資源需要加載然后播放;
(3)SpriteAtlas與SpriteFrame玩家頭像,任務(wù)圖標(biāo)等更換圖標(biāo)的精靈對象;
(4)TextAsset: 游戲策劃數(shù)據(jù)數(shù)值表: csv文件與json文本文件資源;
(5)Material材質(zhì)對象: 有些3D物體需要切換材質(zhì)對象,需要代碼加載材質(zhì)對象然后切換;這5類資源就是我們代碼直接加載的資源類型,其它的都可以作為資源的依賴;
搞清楚了需求后,我們就來確立劃分Ab包的原則, 我們按照資源的用途來分ab包,比如游戲UI,游戲地圖,游戲角色,游戲特效等,根據(jù)用途來把資源分成一個或多個ab包。我們代碼直接加載的是上面分析的4種類型,TextAsset, AudioClip與SpriteAtlas, SpriteFrame直接加載就可以了,其它的都是預(yù)制體,而預(yù)制體又依賴于其它資源,我們專門新建一個文件夾Prefabs用來存放做好的預(yù)制體,預(yù)制體的依賴我們新建一個Materials(原材料)文件夾用來存放這些依賴資源

按照功能用途分好文件夾以后,就可以指定ab包了。
如何分ab包完成以后,接下來就是資源管理的代碼,基于ab包加載資源。由于Cocos Creator ab包資源加載都屬于異步加載,所以我們的資源管理的思想是,進(jìn)入之前先加載好主要資源,然后再進(jìn)入游戲內(nèi)容。如果有特別的一些資源,運行的時候,先加載后再使用。資源管理類也是一個管理的單例,主要的接口如下:



(3) releaseResPkg接口: 卸載資源包中的資源;
(4) preloadAsset接口: 加載ab包中的某個資源;
(5) releaseAsset接口: 釋放ab包中的某個資源;
(6) getAsset接口: 獲取ab包中的某個資源
加入我的游戲開發(fā)交流群,
給你分享更多游戲源碼及其他學(xué)習(xí)素材