打开unity新建一个工程 在Assets下新建Editor文件夹

在该文件夹下创建脚本AssetsBundles  

下面为脚本里面的完整代码

 

 

生成AssetBundle

//代码部分

using UnityEditor;//引用程序集  

using System.IO;

 

public class AssteBundles   //不用继承MonoBehaviour

{

 

//特性 添加到Assets菜单下  生成Build AssteBundles选项

    [MenuItem("Assets/Build AssteBundles")]

    static void BuildAssetBundles()

{

//生成文件名,用于存放AssteBundle文件

        string dir = "AssteBundles";

        if (Directory.Exists(dir)==false)//判断是否存在该文件夹

        {

            Directory.CreateDirectory(dir);//如果不存在创建该文件夹

        }

//打包已标记的AssetBundle文件       如果分组打包  应该先加载依赖包 否则材质丢失BuildPipeline.BuildAssetBundles(dir,BuildAssetBundleOptions.None,BuildTarget.StandaloneWindows64);

}}

 

上述代码执行编译完成后在unity中Assets菜单下会出现Build AssteBundles选项

上述图片中会报错,不影响程序,只是再商店搜索时的错误

创建一个cube把下载的材质球拖到Cube上会得到上述图的效果

给上面的AssetBundle文件去个名字加后缀,我取得名字是wall后缀为ab

进到Unity页面点击Assets菜单下的Build AssteBundles选项就能打包成功

 

打开AssetBundles文件夹就可看到已经打包好的AssetBundle文件了