AssetBundles are files which you can export from Unity to contain Assets of your choice. These files use a proprietary compressed format and can be loaded on demand by your application. This allows you to stream in content, such as models, Textures, audio clips, or even entire Scenes, separately from the Scene in which they will be used.
AssetBundles have been designed to simplify downloading content to your application. They can contain any kind of Asset type recognized by Unity, as determined by the filename extension. If you want to include files with custom binary data, they should have the extension “.bytes”. Unity will import these files as TextAssets.
Prepare the AssetBundles and upload them to a server:
Build AssetBundles: Create AssetBundles in the Editor using the Assets in your Scene. See Building AssetBundles to learn how to do this.
Upload AssetBundles to external storage. Use an FTP client to upload your AssetBundles to the server of your choice. At run time, the application will load AssetBundles on demand, and operate individual Assets within each AssetBundle as needed.
Download AssetBundles at run time from your application. This is done from script within a Unity Scene, and AssetBundles are loaded from the server on demand. See Downloading Asset Bundles to learn more.
Load GameObjects from AssetBundles. Once the AssetBundle is downloaded, you may want to access its individual Assets. See Loading Resources from AssetBundles to learn how to do this.
Please read this section of the documentation thoroughly to familiarize yourself with the workflow for using AssetBundles, discover the different features they provide, and learn best practices that can save you time and effort during development.
See also: AssetBundles and Resources Best Practice