參考:
1. 為了加快首頁顯示速度,減小主包大小。
2. 微信主包限制4M,所有分包總大小限制16M。
基於以上兩點,需要將多余資源放到分包進行加載。
選擇需要分包的文件夾,這里隨便選個測試用的texture文件夾,里面有幾張圖片。

選擇目標平台為微信小游戲,壓縮類型小游戲分包,bundle名稱為testTexture。

構建發布微信小游戲后,用微信開發者工具打開,在game.json中可以看到分包的配置,里面已經有testTexture這個分包了。

加載分包並顯示分包中一張圖片
cc.assetManager.loadBundle("testTexture", (err, bundle) => {
cc.assetManager.getBundle("testTexture").load("common/button/du_btn_home",cc.SpriteFrame, (err, asset: cc.SpriteFrame) => {
let node: cc.Node = new cc.Node();
let sp: cc.Sprite = node.addComponent(cc.Sprite);
sp.spriteFrame = asset;
this.node.addChild(node);
});
});

一 微信的分包加載接口loadSubpackage
微信加載分包本使用的是微信提供的loadSubpackage接口,但是cocos貌似已經做了兼容處理,讓loadBundle加載分包既可以在web中使用,也可以在微信小游戲中使用。
二 resource也是分包
在game.json中可以看到resouce也是一個分包,resource屬於內置的bundle,所以也是一個分包。
resource並不會增加主包加載大小,游戲首先會加載resource的資源配置文件,不會加載里面的圖片/聲音/骨骼/json配置等等資源。
等需要使用resource的資源時,用戶主動調用cc.resource.load去進行加載。
三 不是resource也不是分包的資源
放在resource外部的資源,沒有設置為分包,那么這份資源只有存在依賴加載關系的時候,才會被打包進項目。
例如resouce外面有張圖片A, 在resource/login/lognScene.prefab中被使用到,存在依賴關系,則構建發布時,圖片A會被打包進resource分包中。
