Unity游戏资源更新(AB包)

目录

前言:

一、什么是AssetBundle

二、AssetBudle的基本使用

1.AssetBundle打包

2.BuildAssetBundle

BuildAssetBundleOptions

BuildTarget

示例

3.AssetBundle的加载

LoadFromFile

LoadFromMemory

LoadFromMemoryAsync

UnityWebRequestAsssetBundle


前言:

随着移动终端的发展,在一些大型游戏中动态加载游戏模型、贴图等资源文件以及实现游戏的更新,对开者来说是非常重要的工作。本文将结合Unity的AssetBundle资源包来做到游戏的更新。

一、什么是AssetBundle

AssetBundle是将资源用Unity提供的一种用于存储资源的压缩格式打包后的集合,它是对资源管理的扩展,可以动态地加载和写在,并大大减少游戏所占地内存,即使是已经发布地游戏也可以用它来增加新的内容。

一般情况下,AssetBundle开发流程地具体步骤如下:

1)创建AssetBundle。开发人员在Unity中通过脚本将所需要地资源打包成AssetBundle文件。

2)上传至服务器。开发者将创建好的AssetBundle文件通过上传工具上传到游戏地服务器中,让游戏客户端可以通过访问服务器来获得当前需要地资源,进而实现游戏的更新。

3)下载AssetBundle。游戏运行时,客户端可以将服务器上的游戏更新所需要的AssetBundle下载到本地设备,再通过加载模块加载到游戏中。Unity提供了相应的API来完成从服务器的下载AssetBundle操作。

4)加载AssetBundle。AssetBundle文件下载完成后,通过Unity提供的API可以加载资源里的模型、贴图、音频等并将它们实例化更新到游戏客户端。

5)卸载AssetBundle,Unity提供了相应的方法来卸载AssetBundle,卸载它可以节约内存。

二、AssetBudle的基本使用

1.AssetBundle打包

Unity有自带的打包创建工具,开发者可以一目了然的打包而不需要任何代码。

步骤:

1)选中我们需要打包的资源,在我的示例项目中,有一个名为CubeAsset的预制件

2)在Inspector面板可以看到最底下的AssetBundle选项,现在为None

3)展开选项创建新的AssetBundle。(点击New命名)

注意:只有Asset目录下的资源文件可以被打包到AssetBundle中,AssetBundle的名称固定为小写字母,如果使用了大写,系统会自动转换为小写。每个AssetBundle都可以设置一个Variant,Variant其实是一个后缀,如果有不同分辨率的同名资源,可以添加不同的Variant来加以区分。

2.BuildAssetBundle

创建好的AssetBundle需要导出,这一过程需要编写代码来实现。

Unity简化了开发者遍历资源的过程,自行打包时会将规定的所有资源打包(即之前用打包工具创建并且命名的全部资源),然后将它们置于指定的文件夹中,其声明格式如下:

public static AssetBundleMainfest BuildAseetBundles(string outputPath,BuildAssetBundleOptions assetBundleOptions=BuildAssetBundleOption.None,BuildTarget targetPlatfom=BuildTarget.WebPlayer);

其中,outputPath参数是AssetBundle的输出路径,一般情况下为Assets目录下的某一个文件,如:Application.dataPath+"/AssetBundle"; assetBundleOptions参数为AssetBundle的创建选项; BuildTarget参数为AssetBundle的目标创建平台。 

BuildAssetBundleOptions

None 不使用任何特殊选项构建 assetBundle。
UncompressedAssetBundle Don't compress the data when creating the AssetBundle.
DisableWriteTypeTree 不包括 AssetBundle 中的类型信息。
DeterministicAssetBundle 使用存储在资源包中对象的 ID 的哈希构建资源包。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米芝鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值