AB包使用流程的第2步:就是调用代码打包。
using System.IO;
using UnityEditor;
/*
* Author:W
* AssetBundle打包工具
*/
public class AssetBundleTool
{
[MenuItem("Assets/Build AssetBundles")]
static void BuildAssetBundles()
{
//AssetBundle资源存放根目录检查创建
string dir = "AssetBundles";
//如果不存在,就新建
if (Directory.Exists(dir) == false)
{
Directory.CreateDirectory(dir);
} //存在的话,删除所有的子文件
else
{
DirectoryInfo dirInfo = new DirectoryInfo(dir);
FileInfo[] files = dirInfo.GetFiles("*",SearchOption.AllDirectories);
for (int i = 0; i < files.Length; i++)
{
string filePath = dir + "/" + files[i].Name;
File.Delete(filePath);
}
}
//构建打包
//BuildAssetBundleOptions:构建Bundle资源包主要选项
//1.None:代表默认,Unity会采用LZMA算法进行压缩,压缩包体积更小,但是加载时间长,因为使用之前需要整体解压。值得注意的是,Unity对这种构建
//Bundle资源的方式,进行了优化:当这种Bundle资源被下载到本地时,整体解压完后,会被使用LZ4重新压缩存放在本地,以后使用不需要整体解压,
//才能使用Bundle包资源
//2.ChunkBasedCompression:使用LZ4算法压缩,压缩率没LZMA算法高,当加载比较快,因为不需要解压全部,只需要加载指定资源
//3.UncompressedAssetBundle:不压缩,包大,但加载快
//BuildTarget:AB包使用的目标平台,如PC端、iOS、Android等,因此需要针对不同的平台打出对应Bundle包
BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
}
}
关于项目中记录所有打出AB包信息文件如截图
AssetBundles.mainfest配置文件
cubewall AB包文件如下截图
关于该AB包中所有资源信息文件