一個輕量且高效的 Unity AssetBundle 建置工具,提供自動化標記、依賴處理、配置管理等功能,簡化 AssetBundle 的建置流程,適合各種規模的 Unity 專案快速整合使用。
此工具包含完整的 AssetBundle 建置流程管理,分為以下核心功能:
- 自動掃描指定目錄下的所有資源
- 智能處理資源依賴關係,避免重複打包
- 支援自訂排除目錄與檔案類型
- 一鍵完成標記與建置流程
- 支援配置檔案儲存與載入(JSON 格式)
- 團隊協作友好,配置可納入版本控制
- 自動載入預設配置,開箱即用
- 支援多種輸出路徑模式(相對路徑/絕對路徑)
- 提供圖形化操作視窗(EditorWindow)
- 資料夾選擇器,避免手動輸入路徑錯誤
- 即時路徑預覽與隱私保護
- 清晰的操作反饋與錯誤提示
提供完整的程式化 API,支援 CI/CD 整合:
- 移除 Bundle 名稱:
RemoveBundleNames - 清除資源標籤:
ClearAssetLabels - 設定資源標籤:
SetAssetLabels - 建置 AssetBundles:
BuildBundles - 一鍵建置流程:
StartBuildPipeline
-
開啟建置視窗
- Unity 選單:Tools → AssetBundle → Open Builder Window
-
配置設定
- Asset Directory:選擇要打包的資源目錄
- Output Directory:選擇輸出目錄
- Build Options:選擇建置選項
-
執行建置
- 點擊 "Start Build Pipeline" 一鍵完成
- 或分步驟執行:Remove Bundle Names → Set Asset Labels → Build Bundles
-
儲存配置
- 點擊 "Save Config" 儲存當前配置
- 配置檔案位於:
Assets/BundleBuilderSettings.json - 下次開啟視窗時自動載入
using UnityEditor;
public class CustomBuildScript
{
[MenuItem("Build/Custom AssetBundle Build")]
public static void CustomBuild()
{
var builder = new BundleBuilder();
// 自訂配置
builder.Settings.AssetDirectory = "Assets/GameAssets";
builder.Settings.OutputDirectory = "ServerBundles";
builder.Settings.UseStreamingAssets = false;
builder.Settings.BuildOptions = BuildAssetBundleOptions.ChunkBasedCompression;
// 執行建置
builder.StartBuildPipeline();
}
}| 參數名稱 | 類型 | 預設值 | 說明 |
|---|---|---|---|
AssetDirectory |
string | "Assets/AssetBundles" | 要打包的資源目錄(必須在 Assets 內) |
UseStreamingAssets |
bool | true | 是否輸出到 StreamingAssets 資料夾 |
OutputDirectory |
string | "AssetBundles" | 輸出目錄名稱或絕對路徑 |
ExcludeDirectories |
string[] | ["Packages"] | 排除的目錄 |
ExcludeExtensions |
string[] | [".cs"] | 排除的副檔名 |
PathSeparator |
string | "$" | 路徑分隔符號替換字元 |
VariantName |
string | "bundle" | AssetBundle 的 Variant 名稱 |
CatalogFileName |
string | "catalog.txt" | 資源清單檔案名稱 |
BuildOptions |
BuildAssetBundleOptions | None | AssetBundle 建置選項 |
| 方法名稱 | 功能描述 |
|---|---|
RemoveBundleNames() |
移除所有已註冊的 AssetBundle 名稱(快速操作) |
ClearAssetLabels() |
清除所有資源的 AssetBundle 標籤(完整清理) |
SetAssetLabels() |
自動掃描並設定資源的 AssetBundle 標籤 |
BuildBundles(catalog) |
建置 AssetBundles 到指定輸出目錄 |
StartBuildPipeline() |
一鍵執行完整建置流程 |
| 方法名稱 | 功能描述 |
|---|---|
SaveToFile(path) |
儲存配置到 JSON 檔案 |
LoadFromFile(path) |
從 JSON 檔案載入配置 |
GetDefaultConfigPath() |
取得預設配置檔案路徑 |
GetOutputPath() |
取得完整的輸出路徑 |
Start Build Pipeline 執行順序:
-
Remove Bundle Names 移除所有已註冊的 AssetBundle 名稱,準備重新標記
-
Set Asset Labels 掃描 Asset Directory 下的所有資源,自動設定標籤並處理依賴關係
-
Build Bundles 使用 Unity BuildPipeline 建置 AssetBundles 到指定輸出目錄
輸出內容:
- AssetBundle 檔案(每個資源獨立打包)
- Manifest 檔案(Unity 自動生成)
- catalog.txt(資源清單,包含所有打包的資源路徑)
-
Asset Directory 限制 必須選擇 Assets 資料夾內的目錄,工具會自動驗證並轉換為相對路徑
-
依賴處理 工具會自動追蹤並打包所有依賴資源,確保 Bundle 的完整性
-
命名規則 資源的 Bundle 名稱由路徑生成(例如:
Assets/AssetBundles/Prefabs/Player.prefab→Assets$AssetBundles$Prefabs$Player.prefab.bundle)
此專案基於 GPLv3 授權條款,詳情請參閱 LICENSE 文件。