Unity新版AssetBundle打包API以及使用策略
1.新版打包API
BuildPipeline.BuildAssetBundles(string outputPath, AssetBundleBuild[] builds, BuildAssetBundleOptions assetBundleOptions, BuildTarget targetPlatform);
outputPath:bundle包生成路径
builds:这个是新版打包的核心部分, Unity会根据该数组内的信息自动生成依赖
assetBundleOptions:压缩方式
targetPlatform:目标平台
2.参数详解
string outputPath:生成Bundle的路径(全路径)
AssetBundleBuild[] builds:Bundle生成信息
首先我们先分析一AssetBundleBuild类的详细参数
AssetBundleBuild类我们可以理解每一个AssetBundleBuild对象记录一个bundle包内所包含的信息
assetBundleName:Bundle包名字
assetBundleVariant:Bundle包后缀
assetNames:该bundle包内所包含的资源路径(Asset路径)
addressableNames:这个变量类似于assetNames数组的重写,该数组的长度必须保证与assetsNames的长度一样,打包时会先寻找该数组内索引的路径资源,如果该索引没有设置,就按照assetNames内索引的资源路径添加资源
BuildAssetBundleOptions assetBundleOptions:压缩选项,这个不细说了自己看图
根据情况选择不同的压缩格式,正常情况下推荐chunkBasedCompression,Lz4压缩包较小,加载速度快
BuildAssetBundleOptionsBuildTarget targetPlatform:目标平台
这里可以通过EditorUserBuildSettings.activeBuildTarget 来判断当前平台
BuildTarget3.使用策略
使用新版打包时要注意的是不要一个个去进行打包,builds为AssetBundleBuild数组格式的参数,意味着我们在构建bundle的时候,需要提前将所有的bundle信息都收集完成,然后组成数组一次传递给Unity,Unity会帮我们自动设置好依赖关系,另外要注意的是构建时候的资源路径是Assets路径而不是全路径
4.参考实例
代码仅供参考,实现效果是Unity内选取一个文件夹,将该文件夹内所有文件打成一个bundle
EditorBundlePackageMenu:拓展编辑器 BundlePackagePath:主要包含打包相关路径 BundlePackageManager第一页 BundlePackageManager第二页