Unity资源打包(一):AssetBundle使用-2020更新

本文详细介绍了Unity的AssetBundle使用,包括AssetBundle的概念、作用、不同版本的打包方式,以及本地和网络加载AssetBundle的方法。还探讨了AssetBundle在不同平台的打包路径问题,并提及了批量命名自动打包的工具开发。
摘要由CSDN通过智能技术生成

正所谓:自古套路得人心,学会AssetBundle开发,成就更精简游戏包。

  • 欢迎关注公众号:雷潮课堂
    公众号二维码.jpg
    ###AssetBundle打包
一、课程内容

1-1游戏套路
1-2什么是AssetBundle
1-3AssetBundle的作用

二、使用AssetBundle打包

2-1版本5.0前后打包
2-2版本5.0前后解压
2-3手动打包2020版本

三、加载AssetBundle

3-1加载本地AssetBundle(模型,图片)
3-2网络加载AssetBundle(网络加载(UnityWebRequest))
3-3 AssetBundle打包路径问题(不同平台Android、iOS、PC)

四、打包工具的开发

4-1 批量命名打包
4-2 官方Demo案例介绍

1-1、游戏套路

我们经常下载一些游戏App,如果Wifi情况下,App大小就无关紧要。但是如果是流量呢?一看到App的大小,直接就不下了。但是游戏公司怎么会不知道?所以采用热更新,或者直接下载完毕后,再进行加载的行为进行笼络用户。当然这也是产品要求的结果。这里不说游戏的好玩,只讨论这种套路是什么手段进行的。

红线框中的游戏你敢流量下载?

1-2、什么是AssetBundle?

资源需要打包发布,所以Unity提供的打包策略,也就是AssetBundle。这个的方式有自己的压缩格式(LZMA\压缩),其实就是精简你的资源。简称AB,几乎所有的资源都可以打包程AB,AB可以存放Unity可识别的任何资源类型,具体取决于文件的扩展名。例如:导入的文件后缀为“.byte”,Unity会将这些文件作为文本(TextAssets)导入。导入的文件后缀为“.spine”,Unity会将这些文件作为动画导入。


可以通过官方的Demo来进行学习:Unity5 AssetBundle Demo


1-3、AssetBundle的作用

由于我们要将模型资源放在远程的服务器端,但如果直接放fbx模型是不可以加载的,所以我们可以将fbx做成预设或者是直接将其打包成assetbundle格式的,然后通过www来加载获取。
这就是打包并上传服务器的资源流程

如果将上述流程反过来,就是加载服务器数据包

加载服务器的资源流程

2、使用AssetBundle

在打包的时候,可能会重复打包,造成资源包很大。可以将资源拆分细致后,独立打包。
比如:一个模型的网格Mesh,材质Material,贴图Texture.

2-1 Unity5.0之前旧版AB打包

本先扫描所有要打包的资源,然后AssetDatabase.GetDespendencie获得所有的依赖,自己记录起来,由于怕资源名称相同,所以使用AssetDatabase。AssetPathToGUID获得资源的唯一id,然后存起来。
获得所有依赖关系之后,再使用BuildPipeline.PushAssetDependenciesBuildPipeline.PopAssetDependencies按照层级和顺序来打包。这样打出来的资源就完全保留了依赖关系,文件会被拆散,不会重复打包。

2-2 Unity5.0之后,AB打包
BulidPipeline.BuildAssetBundles(outputPath,BuildAssetBundleOptions,BuildTarget)

BuildAssetBundleOptions.None:默认构建AssetBundle的方式。使用LZMA算法压缩,此算法压缩包小,但是加载时间长,而且使用之前必须要整体解压。解压以后,这个包又会使用LZ4算法重新压缩,这样这种包就不要对其整体解压了。(也就是第一次解压很慢,之后就变快了。
BuildAssetBundleOptions.UncompressedAssetBundle:不压缩数据,包大,但是加载很快。
BuildAssetBundleOptions.ChunkBaseCompression:使用LZ4算法压缩,压缩率没有LZMA高,但是加载资源不必整体解压。这种方法中规中矩,我认为比较常用。
以上是常用的三种,接下来会对你其余的几种做简单的介绍
BuildAssetBundleOptions.D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值