Unity笔记--AssetBundle

unity文档:https://docs.unity3d.com/cn/current/Manual/AssetBundlesIntro.html

1. AssetBundle是什么

  • AssetBundle (简称AB包)是一个存档文件,包含可在运行时加载的特定于平台的资源(模型、纹理、预制件、音频剪辑甚至整个场景)。就是一个压缩包,可以在运行中通过代码从特定的压缩包中加载需要的AssetBundle对象(被压缩的资源)。

  • AssetBundle 可以表达彼此之间的依赖关系;例如 AssetBundle A 中的材质可以引用 AssetBundle B 中的纹理。为了通过网络进行有效传递,可以根据用例要求选用内置算法来压缩 AssetBundle(LZMA 和 LZ4)。

  • AssetBundle 可用于可下载内容(DLC),减小初始安装大小,加载针对最终用户平台优化的资源,以及减轻运行时内存压力。

2. AssetBundle 中有什么?

  “AssetBundle”可以指两种不同但相关的东西:AssetBundle存档、AssetBundle对象。

1)AssetBundle存档:

  存档可以被视为一个容器,就像文件夹一样,可以在其中包含其他文件。这些附加文件包含两种类型:序列化文件和资源文件。

  序列化文件:包含分解为各个对象并写入单个文件的资源。

  资源文件:只是为某些资源(纹理和音频)单独存储的二进制数据块,允许我们有效地在另一个线程上从磁盘加载它们。

2)AssetBundle对象

  通过代码进行交互以便从特定存档加载资源的实际 AssetBundle 对象。

  此对象包含一个映射,即从已添加到此存档的资源的所有文件路径 到 按需加载的资源所包含的对象之间的映射。(就是该对象中存有资源的路径,可以通过路径去加载需要的资源。)

为AssetBundle分配资源

  1. 从 Project 视图中选择要为捆绑包分配的资源 ;
  2. 在 Inspector 中检查对象;
  3. 在 Inspector 底部,应该会看到一个用于分配 AssetBundle 和变体的部分;
  4. 左侧下拉选单分配AssetBundle,而右侧下拉选单分配变量;
  5. 单击左侧下拉选单,其中显示“None”,表示当前注册的 AssetBundle 名称;
  6. 单击“New…”以创建新的 AssetBundle;
  7. 输入所需的 AssetBundle 名称。请注意,AssetBundle 名称支持某种类型的文件夹结构,具体取决于您输入的内容。要添加子文件夹,请用“/”分隔文件夹名称。例如:AssetBundle名称“environment/forest”将在 environment 子文件夹下创建名为 forest 的捆绑包;
  8. 一旦选择或创建了 AssetBundle 名称,便可以重复此过程在右侧下拉选单中分配或创建变体名称(如果需要)。构建 AssetBundle 不需要变体名称

构建AssetBundle

在 Assets 文件夹中创建一个名为 Editor 的文件夹,并将包含以下内容的脚本放在该文件夹中:

using UnityEditor;
using System.IO;

public class CreateAssetBundles
{
    [MenuItem("Assets/Build AssetBundles")]
    static void BuildAllAssetBundles()
    {
        string assetBundleDirectory = "Assets/AssetBundles";
        if(!Directory.Exists(assetBundleDirectory))
{
    Directory.CreateDirectory(assetBundleDirectory);
}
BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
    }
}

  此脚本将在 Assets 菜单底部创建一个名为“Build AssetBundles”的菜单项,该菜单项将执行与该标签关联的函数中的代码。单击 Build AssetBundles 时,将随构建对话框一起显示一个进度条。此过程将会获取带有 AssetBundle 名称标签的所有资源,并将它们放在 assetBundleDirectory 定义的路径中的文件夹中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值