AssetBundles
AssetBundle工作流
将Asset分配给AssetBundles
构建AssetBundles
加载AssetBundles和Asset
为AssetBundles准备
类型分组
并发内容分组
资产建筑AssetBundles
BuildAssetBundleOptions
BuildTarget
The AssetBundle File
The Manifest File
AssetBundle依赖性
AssetBundles信息
加载AssetBundles
使用原生AssetBundles
AssetBundle.LoadFromMemoryAsync
AssetBundle.LoadFromFile
UnityWebRequestAssetBundle
Loading Assets from AssetBundles
Loading AssetBundle Manifests
Managing Loaded AssetBundles
AssetBundle压缩
AssetBundle压缩格式
AssetBundle缓存
用AssetBundles打补丁
故障排除
Asset重复
Sprite Atlas重复
Android纹理
着色器和AssetBundle之间的交互
Unity资源包浏览器工具
安装
AssetBundle下载完整性和安全
使用安全协议下载
CRC校验
用户生成内容
AssetBundle是一个存档文件,包含特定于平台的非代码资产(如模型,纹理,预制件,音频剪辑,甚至整个场景),Unity可以在运行时加载。AssetBundle可以表达彼此之间的依赖关系,例如,一个AssetBundle中的材质可以引用另一个AssetBundle中的纹理。为了通过网络进行有效的交付,您可以根据用例需求(LZMA和LZ4)选择内置算法来压缩AssetBundles。
AssetBundles可以用于下载内容(DLC),减少初始安装大小,加载针对最终用户平台优化的资源,并减少运行时内存压力。
注意:AssetBundle可以包含代码对象实例的序列化数据,比如ScriptableObject。但是,类定义本身被编译为项目程序集之一。当你在AssetBundle中加载一个序列化的对象时,Unity会找到匹配的类定义,创建它的一个实例,并使用序列化的值设置该实例的字段。这意味着你可以在AssetBundle中引入新道具,只要这些道具不需要改变你的类定义。
AssetBundle里有什么?
“AssetBundle”可以指两个不同但相关的东西。首先是磁盘上的实际文件。这被称为AssetBundle存档。AssetBundle存档是一个容器,就像一个文件夹一样,其中包含其他文件。这些附加文件包括两种类型:
- 一个序列化的文件,其中包含分解成单个对象的资产,并写入到这个文件中。
- 资源文件,这是为某些资产(纹理和音频)单独存储的二进制数据块,允许Unity在另一个线程上有效地从磁盘加载它们。
“AssetBundle”也可以引用实际的AssetBundle对象,你可以通过代码从一个特定的AssetBundle存档中加载资源。此对象包含您添加到此存档的资产的所有文件路径的映射。
AssetBundle工作流
将Asset分配给AssetBundles
要将一个给定的Asset分配给一个AssetBundle,请遵循以下步骤:
- 从ProjectView中选择你想要分配给bundle的资产。
- 在Inspector中检查对象。
- 在Inspector的底部,有一个部分用于分配AssetBundles和variables。使用左边的下拉菜单来分配AssetBundle,右边的下拉菜单来分配分配变量。
- 点击左边的None来显示当前注册的AssetBundle名称。
- .单击New创建一个新的AssetBundle。
- 输入所需的AssetBundle名称。(注意:AssetBundle名称支持的文件夹结构类型取决于你的类型。若要添加子文件夹,请使用/。例如,使用AssetBundle名称environment/forest在environment子文件夹下创建一个名为forest的bundle,需要创建environment下的子Bunlde只需要和上面同样操作就可以了)
- 一旦你选择或创建了一个AssetBundle的名字,你就可以在右边的下拉菜单中重复这个过程来分配或创建一个Variant的名字,如果你愿意的话。变量的名字不需要构建AssetBundles
注意:在Inspector中,你可以将一个AssetBundle分配给项目中的一个文件夹。默认情况下,该文件夹中的所有资产都被分配到与文件夹相同的AssetBundle中。然而,单个资产的AssetBundle分配是优先的。文章来源:https://www.toymoban.com/news/detail-787264.html
构建AssetBundles
在Assets文件夹中创建一个名为Editor的文件夹,并在文件夹中放置一个脚本,内容如下:文章来源地址https://www.toymoban.com/news/detail-787264.html
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(assetBu
到了这里,关于Unity-AssetBundles(AB包)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!