【Unity3D技術文檔翻譯】第1.9篇 使用 Unity AssetBundle Browser tool (AssetBundle系列完結)


Unity3D技術文檔翻譯

上一章:【Unity3D技術文檔翻譯】第1.8篇 AssetBundles 問題及解決方法

本章原文所在章節:【Unity Manual】→【Working in Unity】→【Advanced Development】→【AssetBundles】→【Unity Asset Bundle Browser tool】

Unity AssetBundle 瀏覽管理工具(Unity Asset Bundle Browser tool)

注意:這個工具是 Unity 標准功能之外的附加功能。想要使用它,你需要從 GitHub點擊鏈接) 下載,並在下載和安裝 Unity 編輯器之后單獨安裝。

這個工具能讓你瀏覽並編輯項目中 AssetBundles 的結構。它將阻止你創建無效的 AssetBundle,以及提醒你已經存在的 AssetBundles 是否有一些問題。它同樣具有基本的構建功能。

之前我們選擇資源,並在編輯器中手動設置它們的 AssetBundle,現在我們也可以使用 AssetBundle 瀏覽管理工具來處理這些。它可以在任何 Unity5.6 及以上版本中加入使用(將 AssetBundleBrowser 文件夾拖入項目任意位置),並且將在 Window 菜單下創建一個新的菜單選項 AssetBundle Browser。它的 configurebuild 功能在新的窗口中被分為兩個標簽欄(最新的有三個標簽欄,多了一個 inspect 標簽):

Unity Asset Bundle Browser tool

需要 Unity5.6 及以上版本

Configure 窗口使用

注意:這個功能處於預發布狀態,因此在你使用之前,我們建議你將項目進行備份。

這個窗口提供了瀏覽器樣式的界面,用於管理和修改項目中的 AssetBundles。第一次打開這個工具的時候,它將在后台解析所有 AssetBundles 數據,並慢慢地標記它檢測到的警告和錯誤。它將盡可能的與項目保持同步,但並不是總能察覺到工具外發生的動態。想要強制進行錯誤檢測,或者想要更新工具的狀態,點擊左上角的刷新按鈕即可。

窗口被分為了四個部分:Bundle 列表(Bundle List)、Bundle 詳情(Bundle Details)、 資源列表(Asset List),以及 資源詳情(Asset Details)。如圖:

AssetBundles-Browser-1.png

Bundle 列表

左邊的窗格展示了項目中所有的 AssetBundles。可使用的功能有:

  • 選擇一個或者一批 Bundles,在右側的資源列表窗格中查看 Bundles 中包含的資源。
  • 帶有版本變量的 Bundles 會變成深灰色,並且能被展開,顯示版本變量列表。
  • 右擊或者緩慢地雙擊,來重命名 Bundle 或者 Bundle 文件夾。
  • 如果一個 Bundle 有任何錯誤、警告或者信息提示,它的右側會出現一個圖標。鼠標懸停在圖標上可以看到更詳細的信息。
  • 如果一個 Bundle 包含至少一個場景(使這個 Bundle 成為“場景Bundle”),同時還包含了非場景資源,那么就會被添加“報錯”標記。在你解決這個錯誤前,該 Bundle 將不會被構建。
  • 包含重復資源的 Bundles 將被添加“警告”標記。
  • 空 Bundles 將被添加“信息提示”標記。由於許多原因,空 Bundles 十分不穩定,並且有時候可能會從列表中消失。
  • Bundles 文件夾具有所包含的 Bundles 的所有信息提示。
  • 想要解決重復資源警告,你可以采取以下方法:
    ① 右擊一個單獨的 Bundle,將所有重復資源轉移到一個新的 Bundle。
    ② 右擊多個 Bundles,你可以選擇將所有重復資源轉移到一個新的 Bundle,或者只是將它們相互之間重復的資源轉移到一個新的 Bundle。
    ③ 你也可以直接從“資源列表”窗格中拖拽重復的資源到“Bundle 列表”窗格,將它們移進一個 Bundle。更多關於這個方法的信息,可以在下面的資源列表特性介紹中看到。
  • 右擊或者點擊 DEL 按鍵來刪除 Bundles。
  • 拖拽 Bundles,將它們移進或者移出文件夾,或者合並它們。
  • 從 Project 瀏覽器拖拽資源進 Bundles 來添加它們。
  • 拖拽資源到空白處來創建一個新的 Bundle。
  • 右擊創建新的 Bundle,或者 Bundle 文件夾。
  • 右擊選擇“Convert to Variant(轉換為版本變量 Bundle)”。這將為選中的 Bundle 添加一個版本變量(默認叫“newvariant”)。已選中 Bundle 中的所有資源都將移入這個新的版本變量 Bundle。未來將會有版本變量 Bundles 間的錯配檢測(三思:現在已經有如果兩個版本變量 Bundles 中的資源數量或者名稱不相同就會報警告的檢測(因為除了資源的壓縮格式以外,兩個版本變量 Bundles 中的資源應該完全相同))。

標准 Bundle 的圖標:
Icon for standard bundle

場景 Bundle 的圖標:
Icon for scene bundle

Bundle 詳情

左下角的窗格展示了 Bundle 列表中選中的 Bundles 的詳情。這個窗格將顯示以下幾個信息:

  • 整個 Bundle 大小。這是磁盤上所有資源的總和。
  • 當前 Bundle 依賴的 Bundles。
  • 和當前 Bundle 有關的任何提示信息(錯誤/警告/提示信息)。

資源列表

右上角的窗格提供了 Bundle 列表中選中的 Bundles 的資源列表。可用的功能如下:

  • 查看預計包含在 Bundle 中的所有資源,按照列表的頭信息進行排序(有三個排序選項:資源名稱/Bundle 名稱/大小,手動點選)。
  • 查看明確包含在 Bundle 中的所有資源,即明確被分配給 Bundle 的資源。檢查器會反映 Bundle 包含的東西,並且在資源名旁邊能看到 Bundle 名稱。
  • 查看隱式包含在 Bundle 中的所有資源。這些資源名稱旁邊的 Bundle 名稱是 auto。如果在檢查器中查看這些資源,會發現它們的 Bundle 配置是 None
    ① 這些資源能被添加進 Bundle 是因為 Bundle 內有資源依賴了它們。只有沒有明確配置 Bundle 的資源才會被隱式地包含進其他 Bundles。
    ② 注意:隱式包含列表不一定完整。已知材質、紋理不是總能顯示正確。
    ③ 因為多個資源可以依賴相同的資源,因此一份資源被隱式包含在多個 Bundles 中是常見的。如果工具檢測到了這種情況,就會將這些 Bundles 和資源都打上警告標記。
    ④ 為了解決重復包含的問題,你需要手動將資源移出,放入一個新的 Bundle,或者右擊 Bundle,選擇“Move duplicate”選項之一。
  • 可以從 Project 窗口拖拽資源進這個窗格的 Bundle 上。只有以一個 Bundle 為目標,且資源類型和 Bundle 類型一致(比如將 scenes 拖拽到 scene Bundle 上),才能拖拽成功。
  • 從資源列表拖拽明確或者隱式包含的資源到 Bundle 列表,將它們添加到其他不同的 Bundles 中,或者新建的一個 Bundle 中。
  • 右擊,或者按 DEL 鍵,將選中的資源從 Bundles 中移除(只是從 Bundles 中移除,不會從項目中移除)。
  • 選擇或者雙擊資源,在 Project 窗口中定位它。

當 Bundles 中包含文件夾的時候,有點需要注意。從 Project 窗口中直接拖拽一個資源文件夾到 Bundle 是可以的。當這么做之后,文件夾本身是明確包含的,而文件夾內的內容是隱式包含的。這反映了將資源分配給 Bundle 的優先級。舉個例子,如果你的游戲有五個 prefabs 在 Assets/Prefabs 下,其中一個 PrefabA 是明確分配 Bundle 的,然后你拖拽 Prefabs 文件夾到 Bundle 窗格,那么 PrefabA 將自動生成一個 Bundle,其他四個 prefabs 和文件夾一起生成一個以文件夾小寫名稱命名的 Bundle。

資源詳情

右下角窗格展示了資源列表中選中資源的詳情。這個窗格不能交互,只用來顯示以下可能出現的信息:

  • 資源的完整路徑
  • 如果是隱式包含的,顯示隱式包含的原因(比如:Is auto included in bundle(s) due to parent(s): TestFolder. 因為父子關系而被隱式包含)
  • 如果有警告,顯示警告的原因
  • 如果有報錯,顯示報錯的原因

可能的問題及解決方案

  • 無法重命名或者刪除一個明確的 Bundle。當你第一次將本工具添加到已存在的項目中時,這個問題偶爾會發生。你需要通過 Unity 菜單系統強制重新導入你的資源,來刷新數據。

Build 窗口使用

Build 窗口

Build 窗口提供了基本的構建功能,讓你可以開始使用 AssetsBundles。在大多數專業的使用情景下,開發者不再需要更高級的構建步驟了。如果這不能滿足你的需求,你可以查看本工具構建相關的代碼,並重寫它們。窗口相關交互接口:

  • Build Target - Bundles 將要構建到的平台。
  • Output Path - 保存構建好的 Bundles 的路徑。默認路徑是 AssetBundles/。你可以手動編輯這個路徑,或者選擇“Browser”來選擇路徑。想要返回默認路徑,點擊“Reset”按鈕即可。
  • Clear Folders - 在構建之前,將構建路徑下的文件夾的所有數據刪除。
  • Copy to StreamingAssets - 在構建完成后,將結果拷貝到
    Assets/StreamingAssets 目錄下。這在測試中可以使用,但是在產品中不起作用。
  • Advanced Settings
    ① Compression - 在不壓縮、LZMA壓縮算法、LZ4壓縮算法中選擇一個作為壓縮方式。
    ② Exclude Type Information - 在 AssetBundles 中不包含類型信息。
    ③ Force Rebuild - 在構建時重新構建需要構建的 AssetBundles。和 “Clear Folders”不同的是,在構建時不被包含的 Bundles 不會被刪除。
    ④ Ignore Type Tree Changes - 當進行增量構建檢查時,忽略類型樹的變化。
    ⑤ Append Hash - 為 Bundle 名稱添加 hash。
    ⑥ Strict Mode - 在構建中途,如果有任何報錯,就終止構建。
    ⑦ Dry Run Build - 進行 dry run 構建。
    ⑧ Build - 開始構建。

(三思:AssetsBundles 相關內容告一段落。后面看到其他相關內容會作為補充內容加上。后面會繼續翻譯官方手冊其他部分的內容,視重要性和難度來選擇,第2.0篇再見!)

如果本文對你有幫助的話,點個贊或者評論一下吧!

下一章:【Unity3D技術文檔翻譯】第2.0篇 材質、着色器與紋理概述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM