【Unity 3D】AssetBundle工作流程、打包策略详解(超详细必看)

Unity的AssetBundle是一个资源压缩包,包含模型、贴图、预制体、声音甚至整个场景,可以在游戏运行时被加载,AssetBundle自身保存着互相的依赖关系,压缩包可以使用LZMA和LZ4压缩算法,减少包大小,更快的进行网络传输,把一些可以下载的内容放在AssetBundle里面,可以减少安装包的大小

AssetBundle是一个存在于硬盘上的文件,压缩包中包含了多个文件,如各种图片、声音等等,方便快速加载,可以在Editor上读取,方便查看,可以通过代码从一个特定的压缩包中加载出来对象,这个对象包含了所有添加到这个压缩包里面的内容,可以通过这个对象加载出来使用

AssetBundle工作流程

AssetBundle主要用于优化安装包的大小,如比较耗费资源的模型、场景、预制体以及图片都可以放到AssetBundle包中,在运行时动态下载后加载,安装包就不会那么大

1:指定资源的AssetBundle属性

首先需要设置要生成AssetBundle包的资源名称和后缀名,这个名称跟后缀名没有特定的规则,单击要生成AssetBundle包的资源,然后在Inspector视图的最下面,就可以看到设置名称和后缀名的地方

2:构建AssetBundle包

构建AssetBundle包,需要根据依赖关系进行打包,将需要同时加载的资源放在一个包里面,各个包会保存相互依赖的信息

3:上传AssetBundle包

上传AssetBundle包需要有一台服务器收发AssetBundle包,下面的实例中会演示如何使用本地IIS服务器进行上传和下载AssetBundle包

4:加载AssetBundle包和包里面的资源

扫描二维码关注公众号,回复: 14689438 查看本文章

下载AssetBundle包后,就要去读取并加载AssetBundle包里面的资源

打包分组策略

生成AssetBundle包时不能将所有的资源都生成到一个包中,因为这样会导致AssetBundle包的体积过大,造成下载 加载过慢 会影响用户体验,也不能为每个资源生成一个包,这样会耗费大量的加载时间,也会影响用户体验

下面介绍常用的打包分组策略

1:按照逻辑实体分组

一个UI界面或者所有UI界面为一个包

一个角色或者所有角色为一个包

所有场景共享的部分为一个包

2:按照类型分组

所有声音资源为一个包

所有Shader为一个包

所有模型为一个包

所有材质为一个包

3:按照使用分组

把在某一个时间内使用的所有资源打包成一个包

按照关卡分 一个关卡需要的所有资源 包括角色 贴图 声音等为一个包

按照场景分 一个场景需要的资源为一个包

4:打包注意事项

把经常更新的资源放在一个单独包内 与不经常更新的包分离

把需要同时加载的资源放在一个包内

可以把其他包共享的资源放在一个单独的包中

把一些需要同时加载的小资源打包成一个包

如果同一个资源有两个版本 可以考虑通过后缀区分

创作不易 觉得有帮助请点赞关注收藏~~~

猜你喜欢

转载自blog.csdn.net/jiebaoshayebuhui/article/details/128591032