日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity中AssetBundle打包文件大致解读

發布時間:2023/12/8 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity中AssetBundle打包文件大致解读 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文只講述使用AssetBundle打包出來的幾種文件信息。如果想學習怎么打包資源的話,請挪步UnityAssetBundle打包

目錄

  • 前提1:只有一個AssetBundle,打包資源數量為一個
    • 打包成功后生成的文件
    • 文件“AssetBundles”
    • 文件“AssetBundles.manifest”
    • 文件“wall.vvb”
    • 文件“wall.vvb.manifest”
  • 前提2:只有一個AssetBundle,打包資源數量為多個
    • 打包成功后生成的文件
    • 文件“AssetBundles”
    • 文件“wall.vvb.manifest”
    • 文件“wall.vvb”
    • 文件“AssetBundles.manifest”
  • 前提3:兩個AssetBundle
    • 打包成功后生成的文件
    • 文件“AssetBundles”
    • 文件“AssetBundles.manifest”
    • 文件“wall.vvb”
    • 文件“wall.vvb.manifest”
    • 文件“wall2.vvb”
    • 文件“wall2.vvb.manifest”
  • 總結:

前提1:只有一個AssetBundle,打包資源數量為一個

以打包一個cube預制體為例。cube預制體設置如下圖

打包成功后生成的文件

打包完成,會生成以下文件

文件“AssetBundles”

這個文件我也沒搞懂。不過應該是此目錄的一些配置文件吧。跟AssetBundle包的使用好像并無太大關聯。(知道的朋友可以留言說明一下)

文件“AssetBundles.manifest”

這個文件大家可以使用記事本打開,可以看到里面存儲的是ab包的信息。由于這里只有一個ab包,所以看不出來。實際上這里記錄著所有ab包。打開如下

文件“wall.vvb”

這個文件就是我們獲取資源時,需要讀取的文件。此文件才是真正包含著所有資源。你可把它當做Unity資源打包時,壓縮后的資源集合。

文件“wall.vvb.manifest”

這個文件包含了“wall.vvb”資源中打包了哪些信息。因為暫時只打包了一個wall,所以“Assets”字段只有一條記錄。而一來項“Dependencies”字段為空是因為我們并沒有設置一來ab包;具體有關AssetBundle依賴的問題就不在此詳述。打開如下

前提2:只有一個AssetBundle,打包資源數量為多個

將與cube相關的資源都進行打包,且打包到同一個AssetBundle包中。新增資源如下圖

打包成功后生成的文件

依然是四個文件。因為我們依然只有一個ab包。

文件“AssetBundles”

同上,不多做解釋。

文件“wall.vvb.manifest”

先打開看看:

很容易發現,除了CRC,其他均無變化。這是因為AssetBundleInfos中保存的是包數量的信息。我們因為只有一個包,所以沒變化。至于CRC,簡單來說就是你的資源放到服務器上,別人要下載時,可以通過這個進行文件完整性驗證。詳細內容大家可以去查閱官方文檔。

文件“wall.vvb”

大家應該發現這個文件變大了;這是因為我們加進去的資源變多了。所以這個資源“壓縮包”就變大了。

文件“AssetBundles.manifest”

打開先看看:
這里Assets多了幾條記錄,也就是我們新加進此AssetBundle的資源。然后CRC也發生了變化。

前提3:兩個AssetBundle

兩個AssetBundle同時打包出來,會發生什么呢?
首先,保持前提2,我們再將之前的cube進行賦值一份,但我們設置成兩個AssetBundle進行打包。如下圖:


下面是AssetBundle設置

打包成功后生成的文件


我們發現,比之前多了一個“wall2.vvb”和“wall2.vvb.manifest”

文件“AssetBundles”

同上,不贅述。

文件“AssetBundles.manifest”

先打開看看:

與之前相比,除CRC依然變化了之外,AssetBundleInfos也發生了變化。這是因為我們新增了一個名字為“wall2”的AssetBundle。

文件“wall.vvb”

與之前相同,大小也無變化。
因為我們對此AssetBundle沒做更改,既沒增也沒減。

文件“wall.vvb.manifest”

打開看:

我們發現,這個沒有發生任何變化。是因為記錄中并沒有新增嗎?這個大家可以嘗試刪除之前打包好的文件再重新打包一下,看看CRC是否是因為資源量沒變更而保持一致呢?

文件“wall2.vvb”

這個跟“wall1.vvb”作用一模一樣,就是相當于一個資源的集合。我們在程序代碼中引用的,也是這個。

文件“wall2.vvb.manifest”

我相信很多小伙伴已經才到里面的內容了。話不多說,來看看是否與你想的一樣呢。

沒錯,這個就跟前提1時的“wall1.vvb.manifest”一樣。

同時“Dependencies”也多了一條記錄。簡單說一下,由于我們在"wall.vvb"包中已經對材質和貼圖進行打包,而“Wall2.prefab”是從“Wall1.prefab”賦值過來的,也就是使用的資源在“wall.vvb”已經打包了,這樣Unity會自動生成一個依賴,而不至于再次進行打包。

這里還涉及到打包分組策略的一下知識。我也就不多說了。大伙兒可以自己通過文章開頭鏈接學習一下打包過程,自己多打包幾次,觀察一下打包大小還有manifest文件內容變化。

總結:

其實還有一種情況沒有說明,那就是在指定AssetBundle時,可以使用“AB/Scene/Wall”這種形式。系統會根據你的目錄結構查找,如果沒有文件則會創建文件。大家可以動手測試一下。
最后,如果有什么講錯的地方,希望大伙評論區指正。謝謝!

總結

以上是生活随笔為你收集整理的Unity中AssetBundle打包文件大致解读的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。