打包预设体:
新建文件夹Editor,放进打包的脚本
using UnityEditor;
using UnityEngine;
public class BuildAssetBundle
{
/// <summary>
/// 点击后,所有设置了AssetBundle名称的资源会被 分单个打包出来
/// </summary>
[MenuItem("AssetBundle/Build (Single)")]
static void Build_AssetBundle()
{
BuildPipeline.BuildAssetBundles(Application.dataPath + "/Test_AssetBundle", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
//刷新
AssetDatabase.Refresh();
}
/// <summary>
/// 选择的资源合在一起被打包出来
/// </summary>
[MenuItem("AssetBundle/Build (Collection)")]
static void Build_AssetBundle_Collection()
{
AssetBundleBuild[] buildMap = new AssetBundleBuild[1];
//打包出来的资源包名字
buildMap[0].assetBundleName = "enemybundle";
//在Project视图中,选择要打包的对象
Object[] selects = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);
string[] enemyAsset = new string[selects.Length];
for (int i = 0; i < selects.Length; i++)
{
//获得选择 对象的路径
enemyAsset[i] = AssetDatabase.GetAssetPath(selects[i]);
}
buildMap[0].assetNames = enemyAsset;
BuildPipeline.BuildAssetBundles(Application.dataPath + "/Test_AssetBundle", buildMap, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
//刷新
AssetDatabase.Refresh();
}
}
然后先打包飞机预设体:
点击标题栏上的“AssetBundle/Build (Single)”打包,打包成功后,会自己生成“Test_AssetBundle”文件夹,并且把打包好的放进去。
这时候Dependencies中是空的,没有依赖关系,因为只是打包单独的预设体,材质球和贴图都没有
下面打包材质球:
‘’
这时候,打包的飞机预设体的那个文件里就有了材质球依赖
下面打包材质球的贴图
这时候,打包的材质球的文件里就有了贴图依赖
注意事项:
这样就可以生成新的文件夹然后在新生成的文件夹里保存打包的资源