AssetBundle 允许您通过 UnityWebRequest 类流式传输其他资源,并在运行时实例化这些资源。AssetBundle 通过 BuildPipeline.BuildAssetBundle 创建。
注意,不同平台的捆绑包互不兼容。为任何独立
平台构建的捆绑包只能在该平台上加载。
例如,为 iOS 构建的捆绑包不兼容 Android,反之亦然。其区别之一在于,
捆绑包在不同的设备上使用不同的着色器及纹理。
另请参阅:UnityWebRequestAssetBundle.GetAssetBundle、在运行时加载资源、BuildPipeline.BuildAssetBundle。
using System.Collections; using UnityEngine; using UnityEngine.Networking;
public class SampleBehaviour : MonoBehaviour { IEnumerator Start() { var uwr = UnityWebRequestAssetBundle.GetAssetBundle("http://myserver/myBundle.unity3d"); yield return uwr.SendWebRequest();
// Get the designated main asset and instantiate it. Instantiate(DownloadHandlerAssetBundle.GetContent(uwr).mainAsset); } }
isStreamedSceneAssetBundle | 如果 AssetBundle 为流式传输的场景 AssetBundle,则返回 true。 |
mainAsset | 构建资源包(只读)时提供的主资源。 |
Contains | 检查 AssetBundle 是否包含特定对象。 |
GetAllAssetNames | 返回 AssetBundle 中的所有资源名称。 |
GetAllScenePaths | 返回 AssetBundle 中的所有场景资源路径(*.unity 资源的路径)。 |
LoadAllAssets | 加载资源捆绑包中继承自 type 的所有资源。 |
LoadAllAssetsAsync | 异步加载资源捆绑包中的所有资源。 |
LoadAsset | 从捆绑包中加载名为 name 的资源。 |
LoadAssetAsync | 从捆绑包中异步加载名为 name 的资源。 |
LoadAssetWithSubAssets | 从捆绑包中加载名为 name 的资源和子资源。 |
LoadAssetWithSubAssetsAsync | 从捆绑包中异步加载资源,该资源具有名为 name 的子资源。 |
Unload | 卸载捆绑包中的所有资源。 |
GetAllLoadedAssetBundles | 当您需要获取当前已加载的所有资源捆绑包的列表时,可以使用该函数。 |
LoadFromFile | 从磁盘上的文件同步加载 AssetBundle。 |
LoadFromFileAsync | 从磁盘上的文件异步加载 AssetBundle。 |
LoadFromMemory | 从内存区域同步创建 AssetBundle。 |
LoadFromMemoryAsync | 从内存区域异步创建 AssetBundle。 |
LoadFromStream | 从托管 Stream 同步加载 AssetBundle。 |
LoadFromStreamAsync | 从托管 Stream 异步加载 AssetBundle。 |
UnloadAllAssetBundles | 卸载当前已加载的所有资源捆绑包。 |
GetInstanceID | 返回对象的实例 ID。 |
ToString | 返回 GameObject 的名称。 |
Destroy | 删除 GameObject、组件或资源。 |
DestroyImmediate | 立即销毁对象 /obj/。强烈建议您改用 Destroy。 |
DontDestroyOnLoad | 加载新场景时,不自动销毁对象 /target/。 |
FindObjectOfType | 返回第一个类型为 type 的已加载的激活对象。 |
FindObjectsOfType | 返回所有类型为 type 的已加载的激活对象的列表。 |
Instantiate | 克隆 original 对象并返回克隆对象。 |
bool | 该对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,判断它们是否引用同一个对象。 |