1.新版打包API
BuildPipeline.BuildAssetBundles(string outputPath, AssetBundleBuild[] builds, BuildAssetBundleOptions assetBundleOptions, BuildTarget targetPlatform);
outputPath:bundle包生成路徑
builds:這個是新版打包的核心部分, Unity會根據(jù)該數(shù)組內(nèi)的信息自動生成依賴
assetBundleOptions:壓縮方式
targetPlatform:目標(biāo)平臺
2.參數(shù)詳解
string outputPath:生成Bundle的路徑(全路徑)
AssetBundleBuild[] builds:Bundle生成信息
首先我們先分析一AssetBundleBuild類的詳細參數(shù)

我們可以理解每一個AssetBundleBuild對象記錄一個bundle包內(nèi)所包含的信息
assetBundleName:Bundle包名字
assetBundleVariant:Bundle包后綴
assetNames:該bundle包內(nèi)所包含的資源路徑(Asset路徑)
addressableNames:這個變量類似于assetNames數(shù)組的重寫,該數(shù)組的長度必須保證與assetsNames的長度一樣,打包時會先尋找該數(shù)組內(nèi)索引的路徑資源,如果該索引沒有設(shè)置,就按照assetNames內(nèi)索引的資源路徑添加資源
BuildAssetBundleOptions??assetBundleOptions:壓縮選項,這個不細說了自己看圖
根據(jù)情況選擇不同的壓縮格式,正常情況下推薦chunkBasedCompression,Lz4壓縮包較小,加載速度快

BuildTarget?targetPlatform:目標(biāo)平臺
這里可以通過EditorUserBuildSettings.activeBuildTarget?來判斷當(dāng)前平臺

3.使用策略
使用新版打包時要注意的是不要一個個去進行打包,builds為AssetBundleBuild數(shù)組格式的參數(shù),意味著我們在構(gòu)建bundle的時候,需要提前將所有的bundle信息都收集完成,然后組成數(shù)組一次傳遞給Unity,Unity會幫我們自動設(shè)置好依賴關(guān)系,另外要注意的是構(gòu)建時候的資源路徑是Assets路徑而不是全路徑
4.參考實例
代碼僅供參考,實現(xiàn)效果是Unity內(nèi)選取一個文件夾,將該文件夾內(nèi)所有文件打成一個bundle




5.實現(xiàn)效果

