AssetBundle 的作用类似于电脑上的WinRAR,360 好压之类的压缩软件,可以将一个或者多个资源进行打包管理,顺带还可以对资源的体积进行压缩。 在Unity 内,除去C#脚本文件以外,选中任何文件后,在Inspector 面板的下方都会出现一个Asset Lables 功能区域,通过这个功能可以给资源设置AssetBundle 的文件名和文件后缀。 文件名:资源打包成AssetBundle 后的文件名,类似于压缩包的名字; 后缀:企业开发中常用的后缀有unity3d,assetbundle,ab,其他自定义; 备注:文件名和后缀名都是小写格式。 在Asset Labels 区域填写AssetBundle 名称的时候,名称是可以分目录嵌套的,比如:文件夹名/文件名。 核心API : BuildPipeline.BuildAssetBundles(路径, 选项, 平台); ①BuildAssetBundles:打包所有设置了AssetLabels 的资源; ②路径:打包出来的AssetBundle 文件存放的位置; ③选项:设置AssetBundle 打包过程中的选项,None 表示忽略该选项; ④平台:AssetBundle 是平台之间不兼容的,IOS,Android 是两套资源 1.如图所示,给我们的两个模型分别设置AssetBundle名字为player和plane,设置后缀为ab。 [

](http://www.wjgbaby.com/wp-content/uploads/2017/10/17101801-300x241.png)](http://www.wjgbaby.com/wp-content/uploads/2017/10/17101801.png) 2.在Assets面板新建一个叫Editor的文件夹以及一个AssetBundless文件夹[![](http://www.wjgbaby.com/wp-content/uploads/2017/10/17101802-283x300.png)
](http://www.wjgbaby.com/wp-content/uploads/2017/10/17101801-300x241.png)](http://www.wjgbaby.com/wp-content/uploads/2017/10/17101801.png) 2.在Assets面板新建一个叫Editor的文件夹以及一个AssetBundless文件夹[![](http://www.wjgbaby.com/wp-content/uploads/2017/10/17101802-283x300.png)
3.在Editor里面新建一个脚本,起名为test,取消继承MonoBehaviour,引入命名空间UnityEditor 代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//引入命名空间“UnityEditor”
using UnityEditor;

public class test
{
//“特性”扩展编辑器
[MenuItem(“Window/buildAsset”)]

//静态无返回值
static void Build()
{
    //存放路径
    string path = Application.dataPath + "/AssetBundless";

    //BuildPipeline.BuildAssetBundles(路径, 选项, 平台)
    //打包选项无,windows64平台
    BuildPipeline.BuildAssetBundles(path, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);

    Debug.Log("打包成功");
}

}

4.点击Window下的buildAsset按钮,Unity会自动打包所有AssetBundle文件到AssetBundless文件夹内,打包后的文件如图所示,可以看到两个模型都已经被压缩了。[

](http://www.wjgbaby.com/wp-content/uploads/2017/10/17101803-300x100.png)
](http://www.wjgbaby.com/wp-content/uploads/2017/10/17101803-300x100.png)