Asset Bundles have been a feature of Unity for quite some time but from Unity 5.0, there is a simplified system for creating bundles from the editor. When you have an asset selected in the Project view, you will see an menu right at the bottom of the inspector under the asset preview.
The menu lets you attach the asset to an asset bundle specified by its name (you can add a new name from the menu or select any bundle name you have previously created in the project). At this stage, the bundle does not exist and there is no icon for it in the project. The name is simply to specify which assets will be collected together when the bundle is eventually built. If you have a folder of assets then you can select a bundle name for it in order to add all the contents of the folder to that bundle.
When you have added all desired assets to the appropriate bundle names, you will need to use the editor API from a script to build the bundles. The BuildPipeline.BuildAssetBundles function will use the selected bundle names to determine which assets belong in which bundles and then build the bundle files themselves. The script that calls this function could be as simple as the following:
@MenuItem("Test/Build Asset Bundles")
static function BuildABs() {
// Put the bundles in a folder called "ABs" within the
// Assets folder.
BuildPipeline.BuildAssetBundles("Assets/ABs");
}
After a successful build, the destination folder will contain bundle files with the names you supplied from the editor. For each bundle, a manifest file will also be created. This is just a text file containing a description of the bundle’s contents.
The only parameter required is the project-relative path to the folder where the built bundles should be saved but there are other options you can use to specify how the build should be carried out. See the script reference page for BuildPipeline.BuildAssetBundles for further details. Note that the older functions in the BuildPipeline class for building asset bundles are still available but they don’t make use of the asset bundle menu in the editor like BuildAssetBundles
does.