AssetBundles let you stream additional assets via the UnityWebRequest class and instantiate them at runtime.
Create AssetBundles by calling BuildPipeline.BuildAssetBundles or using the Scriptable Build Pipeline package.
A bundle built for any of the standalone platforms can only be loaded on that platform, for example a bundle build on iOS is not compatible with Android.
This is because shaders, textures and other types of data are built into platform-specific formats based on the BuildTarget.
See Also: UnityWebRequestAssetBundle.GetAssetBundle, Loading Resources at Runtime, BuildPipeline.BuildAssetBundles.
using System.Collections; using UnityEngine; using UnityEngine.Networking;
public class SampleBehaviour : MonoBehaviour { IEnumerator Start() { var uwr = UnityWebRequestAssetBundle.GetAssetBundle("https://myserver/myBundle.unity3d"); yield return uwr.SendWebRequest();
// Get an asset from the bundle and instantiate it. AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(uwr); var loadAsset = bundle.LoadAssetAsync<GameObject>("Assets/Players/MainPlayer.prefab"); yield return loadAsset;
Instantiate(loadAsset.asset); } }
| memoryBudgetKB | Controls the size of the shared AssetBundle loading cache. Default value is 1MB. |
| isStreamedSceneAssetBundle | Return true if the AssetBundle is a streamed Scene AssetBundle. |
| Contains | Check if an AssetBundle contains a specific object. |
| GetAllAssetNames | Return all asset names in the AssetBundle. |
| GetAllScenePaths | Return all the Scene asset paths (paths to *.unity assets) in the AssetBundle. |
| LoadAllAssets | Loads all assets contained in the asset bundle that inherit from type. |
| LoadAllAssetsAsync | Loads all assets contained in the asset bundle asynchronously. |
| LoadAsset | Loads asset with name from the bundle. |
| LoadAssetAsync | Asynchronously loads asset with name from the bundle. |
| LoadAssetWithSubAssets | Loads asset and sub assets with name from the bundle. |
| LoadAssetWithSubAssetsAsync | Loads asset with sub assets with name from the bundle asynchronously. |
| Unload | Unloads an AssetBundle freeing its data. |
| UnloadAsync | Unloads assets in the bundle. |
| GetAllLoadedAssetBundles | To use when you need to get a list of all the currently loaded Asset Bundles. |
| LoadFromFile | Synchronously loads an AssetBundle from a file on disk. |
| LoadFromFileAsync | Asynchronously loads an AssetBundle from a file on disk. |
| LoadFromMemory | Synchronously create an AssetBundle from a memory region. |
| LoadFromMemoryAsync | Asynchronously create an AssetBundle from a memory region. |
| LoadFromStream | Synchronously loads an AssetBundle from a managed Stream. |
| LoadFromStreamAsync | Asynchronously loads an AssetBundle from a managed Stream. |
| RecompressAssetBundleAsync | Asynchronously recompress a downloaded/stored AssetBundle from one BuildCompression to another. |
| UnloadAllAssetBundles | Unloads all currently loaded AssetBundles. |
| hideFlags | Should the object be hidden, saved with the Scene or modifiable by the user? |
| name | The name of the object. |
| GetInstanceID | Gets the instance ID of the object. |
| ToString | Returns the name of the object. |
| Destroy | Removes a GameObject, component or asset. |
| DestroyImmediate | Destroys the object obj immediately. You are strongly recommended to use Destroy instead. |
| DontDestroyOnLoad | Do not destroy the target Object when loading a new Scene. |
| FindAnyObjectByType | Retrieves any active loaded object of Type type. |
| FindFirstObjectByType | Retrieves the first active loaded object of Type type. |
| FindObjectOfType | Returns the first active loaded object of Type type. |
| FindObjectsByType | Retrieves a list of all loaded objects of Type type. |
| FindObjectsOfType | Gets a list of all loaded objects of Type type. |
| Instantiate | Clones the object original and returns the clone. |
| bool | Does the object exist? |
| operator != | Compares if two objects refer to a different object. |
| operator == | Compares two object references to see if they refer to the same object. |