1.方式1-设置AssetBundleName打包
- 设置AssetBundleName
- 调用打包函数。
Unity会将AssetBundle相同名字的资源打包到一个AssetBundle中。
AssetBundle设置Name由两种方式:
1.编辑器编辑,如上图。
2.代码修改(一般都是代码修改,AssetBundleName有斜杆,会斜杆前会创建文件夹,例如chen/logo,会在导出目录下边创建文件夹名chen,再在chen文件夹下创建名为logo的AssetBundle)
static void ChangeAssetbundleName()
{
Object[] selects = Selection.objects;
foreach (Object selected in selects)
{
//返回所有对象相对于工程目录的存储路径如Assets/_Scenes/Main.unity
string path = AssetDatabase.GetAssetPath(selected);
//把一个目录的对象检索为AssetImporter
AssetImporter asset = AssetImporter.GetAtPath(path);
asset.assetBundleName = selected.name; //设置Bundle文件的名称
asset.assetBundleVariant = "unity3d";//设置Bundle文件的扩展名
asset.SaveAndReimport();
}
AssetDatabase.Refresh();
}
调用函数:
// 所有打包操作需要在编辑器模式下,打包代码也需要放在Editor文件夹下
// outputPath:输出路径,即工程目录下面的路径
// assetBundleOptions:AB包发布选项.
// targetPlatform:选择发布平台.
// Returns:返回一个包含发布所有信息的AssetBundleManifest对象
const string outputPath = "Assets/StreamingAssets";
[MenuItem("AssetsBundle/CreateAssetBundle")]
static void CreateAssetbundle()
{
BuildPipeline.BuildAssetBundles(outputPath, 0,
EditorUs