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 | 如果 AssetBundle 为流式传输的场景 AssetBundle,则返回 true。 |
Contains | 检查 AssetBundle 是否包含特定对象。 |
GetAllAssetNames | 返回 AssetBundle 中的所有资源名称。 |
GetAllScenePaths | 返回 AssetBundle 中的所有场景资源路径(*.unity 资源的路径)。 |
LoadAllAssets | 加载资源捆绑包中继承自 type 的所有资源。 |
LoadAllAssetsAsync | 异步加载资源捆绑包中的所有资源。 |
LoadAsset | 从捆绑包中加载名为 name 的资源。 |
LoadAssetAsync | 从捆绑包中异步加载名为 name 的资源。 |
LoadAssetWithSubAssets | 从捆绑包中加载名为 name 的资源和子资源。 |
LoadAssetWithSubAssetsAsync | 从捆绑包中异步加载资源,该资源具有名为 name 的子资源。 |
Unload | 卸载 AssetBundle 释放其数据。 |
UnloadAsync | 卸载捆绑包中的资源。 |
GetAllLoadedAssetBundles | 当您需要获取当前已加载的所有资源捆绑包的列表时,可以使用该函数。 |
LoadFromFile | 从磁盘上的文件同步加载 AssetBundle。 |
LoadFromFileAsync | 从磁盘上的文件异步加载 AssetBundle。 |
LoadFromMemory | 从内存区域同步创建 AssetBundle。 |
LoadFromMemoryAsync | 从内存区域异步创建 AssetBundle。 |
LoadFromStream | 从托管 Stream 同步加载 AssetBundle。 |
LoadFromStreamAsync | 从托管 Stream 异步加载 AssetBundle。 |
RecompressAssetBundleAsync | 异步将下载/存储的 AssetBundle 从一个 BuildCompression 再压缩为另一个。 |
UnloadAllAssetBundles | 卸载当前已加载的所有 AssetBundle。 |
GetInstanceID | Gets the instance ID of the object. |
ToString | 返回对象的名称。 |
Destroy | 移除 GameObject、组件或资源。 |
DestroyImmediate | 立即销毁对象 /obj/。强烈建议您改用 Destroy。 |
DontDestroyOnLoad | 在加载新的 Scene 时,请勿销毁 Object。 |
FindAnyObjectByType | Retrieves any active loaded object of Type type. |
FindFirstObjectByType | Retrieves the first active loaded object of Type type. |
FindObjectOfType | 返回第一个类型为 type 的已加载的激活对象。 |
FindObjectsByType | Retrieves a list of all loaded objects of Type type. |
FindObjectsOfType | Gets a list of all loaded objects of Type type. |
Instantiate | 克隆 original 对象并返回克隆对象。 |
bool | 该对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,判断它们是否引用同一个对象。 |