版本: Unity 6 (6000.0)
语言英语
  • C#

AssetBundle

UnityEngine 中的类

/

继承自:Object

/

实现于:UnityEngine.AssetBundleModule

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每一项更改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

用于访问 AssetBundle 文件内容的 API。

此类通过静态方法公开了一个 API,用于加载和管理 AssetBundle。

此类还提供非静态方法和属性,用于公开特定已加载 AssetBundle 的内容,包括从 AssetBundle 中加载资源的能力。

通过调用 BuildPipeline.BuildAssetBundles 或使用 Addressables 包 创建 AssetBundle。构建过程会生成一个或多个 AssetBundle 文件,每个 AssetBundle 文件都包含此类的序列化实例。

注意:AssetBundle.LoadAsset 和其他 Load 方法不支持从 AssetBundle 加载场景。相反,在运行时,您加载流式场景 AssetBundle,然后使用场景名称调用 SceneManager.LoadSceneSceneManager.LoadSceneAsync。在编辑器中,不支持从 AssetBundle 加载场景,因此对 EditorSceneManager.OpenScene 的调用将失败,并显示找不到场景文件的错误。

其他资源:AssetBundle 简介UnityWebRequestAssetBundle.GetAssetBundleBuildPipeline.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);

bundle.Unload(true); } }

静态属性

memoryBudgetKB控制共享 AssetBundle 加载缓存的大小。默认值为 1MB。

属性

isStreamedSceneAssetBundle如果 AssetBundle 包含 Unity 场景文件,则返回 true

公共方法

Contains检查 AssetBundle 是否包含特定对象。
GetAllAssetNames返回 AssetBundle 中的所有资源名称。
GetAllScenePaths返回 AssetBundle 中所有场景的名称。
LoadAllAssets同步加载 AssetBundle 中包含的所有资源。
LoadAllAssetsAsync异步加载 AssetBundle 中包含的所有资源。
LoadAsset同步从 AssetBundle 加载资源。
LoadAssetAsync异步从包中加载资源。
LoadAssetWithSubAssets同步加载 AssetBundle 中的资源及其子资源。
LoadAssetWithSubAssetsAsync异步加载 AssetBundle 中的资源及其子资源。
Unload卸载 AssetBundle 并释放其数据。
UnloadAsync卸载包中的资源。

静态方法

GetAllLoadedAssetBundles获取当前已加载的所有 AssetBundle 的枚举。
LoadFromFile同步从磁盘上的文件加载 AssetBundle。
LoadFromFileAsync异步从磁盘上的文件加载 AssetBundle。
LoadFromMemory同步从内存区域加载 AssetBundle。
LoadFromMemoryAsync异步从内存区域加载 AssetBundle。
LoadFromStream同步从托管流加载 AssetBundle。
LoadFromStreamAsync异步从托管流加载 AssetBundle。
RecompressAssetBundleAsync异步将下载/存储的 AssetBundle 从一种 BuildCompression 重新压缩到另一种。
UnloadAllAssetBundles卸载当前已加载的所有 AssetBundle。

继承的成员

属性

hideFlags对象是否应隐藏、与场景一起保存或用户可修改?
name对象的名称。

公共方法

GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

静态方法

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议使用 Destroy 代替。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索任何类型为 type 的活动加载对象。
FindFirstObjectByType检索类型为 type 的第一个活动加载对象。
FindObjectsByType检索类型为 type 的所有加载对象的列表。
Instantiate克隆对象 original 并返回克隆。
InstantiateAsync捕获原始对象(必须与某个 GameObject 相关)的快照并返回 AsyncInstantiateOperation。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用是否引用同一个对象。