2.4.x AsseBundle

AsseBundle

  • 2.4.x 版本的 AssetBundle 為了兼容舊版本,也保留有 cc.resources仅颇,但 resources 也是一個內(nèi)置 Bundle,會在引擎加載時加載
  • 2.4.x 版本的 cc.assetManager.loadBundle 只會加載 Bundle 的配置文件瑰抵,加載完畢會返回一個 Bundle 對象橱赠,可以通過這個對象來加載 Bundle 內(nèi)的資源:
    //cc.Asset 為指定類型,如果加載文件夾蕉世,將會只返回指定類型的資源
    //loadDir 會加載文件夾下所有資源蔼紧,包括子文件夾
    bundle.loadDir(assetUrl, cc.Asset, (finish: number, total: number) => {
      }, (error: Error, asset: cc.Asset) => {
      });
    bundle.load(assetUrl, cc.Asset, (finish: number, total: number) => {
      }, (error: Error, asset: cc.Asset) => {
      });
    
  • 2.4.x 版本的 cc.assetManager.loadRemote 遠(yuǎn)程下載單個文件可以通過在 options 中添加 {onFileProgress:(loaded, total) => {} } 來獲取下載進度。
      cc.assetManager.loadRemote(url, {
          onFileProgress: (loaded: number, total: number) => {
              console.log(loaded / total);//獲取進度
          }
      }, (error: Error, asset: cc.Asset) => {
      });
    
    但是因為下載遠(yuǎn)程文件用的 XMLHttpRequest 所以必須在服務(wù)器端做好相關(guān)配置讨彼。如果沒有辦法添加則可以繼續(xù)使用 cc.loader.load 來加載遠(yuǎn)程資源歉井,截至2.4.3該API還沒有移除。
  • cc.assetManager.loadBundle 可以加載本地 Bundle 哈误,開發(fā)時可以直接構(gòu)建然后加載 AssetBundle 包進行測試
      cc.assetManager.loadBundle("D:/build/Bundle", null, (err: Error, bundle: cc.AssetManager.Bundle) => { 
      });
    
  • AssetBundle 可以包含代碼,但是使用時不可以直接引用 Bundle 包里面的類躏嚎,Budnle 包里的腳本也不可以直接引用外部腳本蜜自,否則會導(dǎo)致腳本被打包到主包,使用時需要使用 node.getComponent('className'); 的方式來獲取腳本實例
  • AssetBundle 的版本號就是打包出來之后中間的這段字符串 config.版本號.json index.版本號.js 若勾選md5卢佣,則會自動添加md5字符串重荠,也可以手動填寫,如 index.1.0.js 加載時版本號填寫 {ver: '1.0'} 即可
  • 可以通過以下代碼獲取bundle中所有資源路徑虚茶,且不需要加載資源
    //_config為私有屬性戈鲁,不推薦使用仇参,但當(dāng)前官方并未提供獲取api
    let map = bundle._config.paths._map;
    let tmpArr = [];
    for (var item in map) {
        tmpArr.push(item);
    }
    console.log(tmpArr);//["path1","path2","path3/path"];
    
  • AssetBundle 使用 loadDir 加載文件夾時,如果文件夾下有子文件夾婆殿,會導(dǎo)致進度回調(diào)中的 total 字段隨著加載增加诈乒,會出現(xiàn) finish/total 獲取的進度不準(zhǔn)確
  • cc.assetManager.bundles 可以查看當(dāng)前已加載的所有 bundle
  • AssetBundle 加載的代碼資源無法清除緩存,加載的 Bundle 內(nèi)若有與現(xiàn)有腳本同名的腳本則會報錯
  • AssetBundle 打包的時候需要設(shè)置目標(biāo)平臺為對應(yīng)平臺婆芦,否則可能出現(xiàn)資源加載問題
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末怕磨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子消约,更是在濱河造成了極大的恐慌肠鲫,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,496評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件或粮,死亡現(xiàn)場離奇詭異导饲,居然都是意外死亡,警方通過查閱死者的電腦和手機氯材,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,187評論 3 385
  • 文/潘曉璐 我一進店門渣锦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浓体,你說我怎么就攤上這事泡挺。” “怎么了命浴?”我有些...
    開封第一講書人閱讀 157,091評論 0 348
  • 文/不壞的土叔 我叫張陵娄猫,是天一觀的道長。 經(jīng)常有香客問我生闲,道長媳溺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,458評論 1 283
  • 正文 為了忘掉前任碍讯,我火速辦了婚禮悬蔽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捉兴。我一直安慰自己蝎困,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,542評論 6 385
  • 文/花漫 我一把揭開白布倍啥。 她就那樣靜靜地躺著禾乘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪虽缕。 梳的紋絲不亂的頭發(fā)上始藕,一...
    開封第一講書人閱讀 49,802評論 1 290
  • 那天,我揣著相機與錄音,去河邊找鬼伍派。 笑死江耀,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的诉植。 我是一名探鬼主播祥国,決...
    沈念sama閱讀 38,945評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼倍踪!你這毒婦竟也來了系宫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,709評論 0 266
  • 序言:老撾萬榮一對情侶失蹤建车,失蹤者是張志新(化名)和其女友劉穎扩借,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缤至,經(jīng)...
    沈念sama閱讀 44,158評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡潮罪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,502評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了领斥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫉到。...
    茶點故事閱讀 38,637評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖月洛,靈堂內(nèi)的尸體忽然破棺而出何恶,到底是詐尸還是另有隱情,我是刑警寧澤嚼黔,帶...
    沈念sama閱讀 34,300評論 4 329
  • 正文 年R本政府宣布细层,位于F島的核電站,受9級特大地震影響唬涧,放射性物質(zhì)發(fā)生泄漏疫赎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,911評論 3 313
  • 文/蒙蒙 一碎节、第九天 我趴在偏房一處隱蔽的房頂上張望捧搞。 院中可真熱鬧,春花似錦狮荔、人聲如沸胎撇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,744評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽创坞。三九已至,卻和暖如春受葛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,982評論 1 266
  • 我被黑心中介騙來泰國打工总滩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纲堵,地道東北人。 一個月前我還...
    沈念sama閱讀 46,344評論 2 360
  • 正文 我出身青樓闰渔,卻偏偏與公主長得像席函,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子冈涧,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,500評論 2 348

推薦閱讀更多精彩內(nèi)容