AssetBundle打包學(xué)習(xí)(二)

了解了Unity的打包方式以后,還需要面對(duì)一個(gè)問題,怎么組織我們的資源。
是一個(gè)資源打一個(gè)包,還是多個(gè)文件打成一個(gè)包,資源之間的依賴關(guān)系怎么處理。
可以針對(duì)資源類型一個(gè)個(gè)梳理打包方案,分析依賴關(guān)系,按類型打包。
通過AssetDatabase.GetDependencies(pathname)可以得到所有依賴文件。

Shader、Font資源

Shader基本被大部分需要繪制的資源有關(guān),所有可以把所有的Shader單獨(dú)打成一個(gè)Bundle
Font被所有UI資源文件引用,單獨(dú)打成一個(gè)公用Bundle

Texture資源

可以通過貼圖的長(zhǎng)寬,壓縮格式計(jì)算出最后的貼圖大小,按一個(gè)Bundle 1MB的標(biāo)準(zhǔn),count = 1MB / (width * height)。

Material資源

在分離貼圖后,材質(zhì)的數(shù)據(jù)非常小,可以不把材質(zhì)分離處理。如果分離材質(zhì)會(huì)有一個(gè)問題是在增量打包的時(shí)候需要把所有的Texture,PushDepend后才能打。這樣基本上是等于不增量,所以還是建議不去分離Material資源。

Mesh、Animation資源

同理可以按照大小、資源類型合并資源到一個(gè)Bundle里面去。比如區(qū)分Player,Npc這些資源。Mesh可以按場(chǎng)景或者角色分類,資源的面數(shù)做個(gè)大概了解即可。動(dòng)作可以區(qū)分是短動(dòng)作,還是長(zhǎng)動(dòng)作來打包。

Prefab資源

當(dāng)把Texture,Mesh,Animation等資源抽離打成共享包以后,可以發(fā)現(xiàn)剩下的一些文本數(shù)據(jù)非常小,基本可以把上百個(gè)Prefab打成一個(gè)Bundle。

NGUI資源

UI的資源依賴關(guān)系比正常的資源復(fù)雜,通用的處理方式并不是很合適。比如一個(gè)Common Atlas,Atlas包括一個(gè)材質(zhì)和圖素的UV坐標(biāo),里面存放了UI資源的基本元素。基本上所有的UI Prefab都會(huì)引用到這個(gè)圖集。如果修改這個(gè)圖集會(huì)導(dǎo)致所有的UI Prefab重新打包,這樣是不合理。所以可以單獨(dú)把Atlas抽離出來,這樣更新只用打一個(gè)Atlas包即可。由于Atlas抽離了Texture后很小,所有可以把所有的Atlas打成一個(gè)公用的Bundle。

資源解耦

除了依賴Unity提供的打共享包的方式外,還有一個(gè)方式是自身對(duì)資源做解耦。比如一個(gè)引用一個(gè)Prefab,可以把這個(gè)引用替換成Prefab路徑,然后再運(yùn)行的時(shí)候通過路徑去加載資源。對(duì)一個(gè)場(chǎng)景文件,通常是需要按這種方式對(duì)資源做解耦,即減少了依賴文件,也可以動(dòng)態(tài)加載場(chǎng)景模型。
通過PrefabUtility.GetPropertyModifications可以得到本地Prefab與場(chǎng)景Prefab的差異。修改其中不支持的,保存修改的支持屬性,比如坐標(biāo)、縮放。

結(jié)語

根據(jù)不同的資源類型與實(shí)際使用情況,來定制打包規(guī)則,基本上能得到較規(guī)整的AB資源。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 上周介紹了Unity項(xiàng)目中的資源配置,今天和大家分享一個(gè)AssetBundle打包工具。相信從事Unity開發(fā)或多...
    carber閱讀 6,615評(píng)論 14 20
  • 原文地址 http://www.fx114.net/qa-75-172454.aspx 使用Profiler工具...
    IongX閱讀 6,262評(píng)論 1 11
  • This article is a record of my journey to learn Game Deve...
    蔡子聰閱讀 4,129評(píng)論 0 9
  • 我一直喜歡用文字、音樂和鏡頭來表達(dá)我的方式。只是一直欠缺了一個(gè)“畫畫”的元素,所以一直很羨慕那些會(huì)畫畫的伙伴,羨慕...
    劉樹華閱讀 823評(píng)論 0 0
  • 唐朝時(shí),花椒的使用曾經(jīng)占據(jù)全國五分之二的菜肴調(diào)味,整個(gè)花椒入菜的歷史也長(zhǎng)達(dá)二千年以上,稱得上極具中國特色的調(diào)料。到...
    白語金言閱讀 435評(píng)論 0 0

友情鏈接更多精彩內(nèi)容