How to build a single asset bundle?

Hello!

I know I can use BuildPipeline.BuildAssetBundles to build all the asset bundles in a unity project.

However, I would like to build just a single asset bundle.

BuildPipeline.BuildAssetBundles does have an overload that allows to specify which assets to build, but every attempt to use it always resulted in this error message:

Manifest AssetBundle name "testbundle" has conflict with the user predefined AssetBundle name.

I am unable to find any information about this error message and can’t figure out what I did wrong.

Any help or info about this is appreciated!

Since this is still a very high search result, here is some code that can selectively build asset bundles. The code sample below is only tested with a single asset bundle name passed in, but could easily be extended to support whatever bundles you choose. Source of inspiration: Allow building specific asset bundles · Issue #119 · Unity-Technologies/AssetBundles-Browser · GitHub

public static void BuildAssetBundlesByName(string[] assetBundleNames, string outputPath) 
   {
       // Argument validation
       if (assetBundleNames == null || assetBundleNames.Length == 0)
       {
           return;
       }

       // Remove duplicates from the input set of asset bundle names to build.
       //assetBundleNames = assetBundleNames.Distinct().ToArray();

       List<AssetBundleBuild> builds = new List<AssetBundleBuild>();

       foreach (string assetBundle in assetBundleNames)
       {
           var assetPaths = AssetDatabase.GetAssetPathsFromAssetBundle(assetBundle);

           AssetBundleBuild build = new AssetBundleBuild();
           build.assetBundleName = assetBundle;
           build.assetNames = assetPaths;

           builds.Add(build);
           Debug.Log("assetBundle to build:" + build.assetBundleName);
       }
       
       BuildPipeline.BuildAssetBundles(outputPath, builds.ToArray(), BuildAssetBundleOptions.None, EditorUserBuildSettings.activeBuildTarget);
   }

Hi, Tom, hope you solved your issue, but for anyone else who has this problem, I found it´s because the name of the folder where you are trying to build your Asset Bundle to is the same as the Asset Bundle name. So, for instance, if you try to build it to “C://Unity/testbundle” and you name your bundle “testbundle” you will get this error.

Just change the name of the bundle or the folder.