ue3dAssetBundle入门介绍

AssetBundle入门介绍

分类:
Unity软件构建资产打包的界面

接触Unity的AssetBundle以来,确实觉得它很强大,所以本文是为了简明扼要地把握AssetBundle的整体入门有用的信息,但不会对每个项目进行深入探讨,只为粗略地理解并使用。

使用之前,需要了解几个步骤

AssetBundle就像一个Zip文件,简单地说,一次压缩并保存多个资产,并在使用它们时解压缩它们。

接下来我们需要了解构建AssetBundle,也是第一个步骤。

构建AssetBundle

无论如何,首先,需要将Assets压缩在一起,即构建AssetBundle,可以使用脚本构建AssetBundle,请从这里了解它。

AssetBundleBrowser无需编写脚本即可轻松尝试构建,请从这里了解它。

此外,AssetBundle还具有以下三种压缩设置。

名称描述
LZ4标准压缩设置
只有部分资产可以解压缩(部分解压缩)
LZMA古老的压缩设置
无法进行部分解冻
未压缩未压缩

其实大多数情况下,如果选择LZ4是没有问题的,最好了解压缩格式,因为它会出现在加载材质中。

下载AssetBundle

认为构建的AssetBundle通常会上传到服务器并在必要的时间下载,由于AssetBundle只是一个二进制文件,因此通常可以使用UnityWebRequest.Get下载它。

下载的AssetBundle也使用File类正常写入磁盘,如果使用名为 DownloadHandlerFile 的 DownloadHandler,它将很好地编写。

还有一个APIUnityWebRequestAssetBundle.GetAssetBundle是Unity官方特意为我们定制的。

如果通过此方式下载,AssetBundle将保存在Unity确定的文件夹中,如果磁盘上已存在AssetBundle,它将使用相同的API从磁盘读取数据。

它将处理麻烦的进程,例如版本控制,但是,无法添加自己的处理,例如加密。

以下是如何下载它的摘要。

接口说明
UnityWebRequest.Get将AssetBundle下载为二进制数据
UnityWebRequestAssetBundle.GetAssetBundleAPI用于管理从下载到磁盘的所有内容

加载AssetBundle

接下来,将下载的AssetBundle加载到磁盘内存中,有四种方法可以将其加载到内存中:

接口说明支持的下载方式
AssetBundle.LoadFromMemory
AssetBundle.LoadFromMemoryAsync
从内存加载
用于加密等
UnityWebRequest.Get
AssetBundle.LoadFromFile
AssetBundle.LoadFromFileAsync
从文件加载
WWW.LoadFromCacheOrDownload一个旧的API(改用UnityWebRequestAssetBundle.GetAssetBundle)*
UnityWebRequestAssetBundle.GetAssetBundle
后跟下载处理程序,该处理程序在 AssetBundle 中获取
UnityWebRequestAssetBundle.GetAssetBundle

首先,需要注意的是,可以使用的加载方法会根据上一节中的下载方法而变化。如果使用UnityWebRequest.Get下载它,则将使用AssetBundle.LoadFromMemoryAssetBundle.LoadFromFile

此外,如果使用UnityWebRequestAssetBundle.GetAssetBundle下载它,请使用相同的API进行加载。如果磁盘上存在AssetBundle,此API将获取它,如果磁盘上不存在,则下载它。

顺便说一句,WWW.LoadFromCacheOrDownload已经过时了,所以不需要使用它。

从AssetBundle加载资产

加载AssetBundle后,需要从其中加载Asset,Asset使用AssetBundle.LoadAsset加载。

请从这里了解AssetBundle.LoadAsset

AssetBundle之间的依赖关系

例如,假设一个游戏模型和它引用的材质存储在单独的AssetBundle中。在这种情况下,就形成了AssetBundle的依赖关系。

需要先加载材质的AssetBundle,然后再加载模型的AssetBundle。

AssetBundleManifest

构建AssetBundle时,将直接在构建的文件夹下创建与文件夹名称同名的AssetBundle,一个名为AssetBundleManifest的资产存储在其中。

AssetBundleManifest包含有关AssetBundle之间的依赖关系的信息和版本控制信息。

那么本文将对AssetBundleManifest不再进一步说明,有时间在做稍微详细地参考。

以上是3D天堂网关于介绍AssetBundle的全部内容,如果你有任何反馈,请随时在本页面下方留言。

相关信息

  • 类型:知识
  • 字数:904
  • 字符:3261
  • 适用软件:Unity
  • 说明:无
  • 编号:169143

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!