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类的详细参数

Unity新版AssetBundle打包API以及使用策略_第1张图片
AssetBundleBuild类

我们可以理解每一个AssetBundleBuild对象记录一个bundle包内所包含的信息

assetBundleName:Bundle包名字

assetBundleVariant:Bundle包后缀

assetNames:该bundle包内所包含的资源路径(Asset路径)

addressableNames:这个变量类似于assetNames数组的重写,该数组的长度必须保证与assetsNames的长度一样,打包时会先寻找该数组内索引的路径资源,如果该索引没有设置,就按照assetNames内索引的资源路径添加资源

BuildAssetBundleOptions  assetBundleOptions:压缩选项,这个不细说了自己看图

根据情况选择不同的压缩格式,正常情况下推荐chunkBasedCompression,Lz4压缩包较小,加载速度快

Unity新版AssetBundle打包API以及使用策略_第2张图片
BuildAssetBundleOptions

BuildTarget targetPlatform:目标平台

这里可以通过EditorUserBuildSettings.activeBuildTarget 来判断当前平台

Unity新版AssetBundle打包API以及使用策略_第3张图片
BuildTarget

3.使用策略

使用新版打包时要注意的是不要一个个去进行打包,builds为AssetBundleBuild数组格式的参数,意味着我们在构建bundle的时候,需要提前将所有的bundle信息都收集完成,然后组成数组一次传递给Unity,Unity会帮我们自动设置好依赖关系,另外要注意的是构建时候的资源路径是Assets路径而不是全路径


4.参考实例

代码仅供参考,实现效果是Unity内选取一个文件夹,将该文件夹内所有文件打成一个bundle

Unity新版AssetBundle打包API以及使用策略_第4张图片
EditorBundlePackageMenu:拓展编辑器
Unity新版AssetBundle打包API以及使用策略_第5张图片
BundlePackagePath:主要包含打包相关路径
Unity新版AssetBundle打包API以及使用策略_第6张图片
BundlePackageManager第一页
Unity新版AssetBundle打包API以及使用策略_第7张图片
BundlePackageManager第二页

5.实现效果

Unity新版AssetBundle打包API以及使用策略_第8张图片
选取文件夹-右键-BuildAssetBundle-Windows
Unity新版AssetBundle打包API以及使用策略_第9张图片
输出目录生成Bundle

你可能感兴趣的:(Unity新版AssetBundle打包API以及使用策略)