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包和包里面的资源
下载AssetBundle包后,就要去读取并加载AssetBundle包里面的资源
打包分组策略
生成AssetBundle包时不能将所有的资源都生成到一个包中,因为这样会导致AssetBundle包的体积过大,造成下载 加载过慢 会影响用户体验,也不能为每个资源生成一个包,这样会耗费大量的加载时间,也会影响用户体验
下面介绍常用的打包分组策略
1:按照逻辑实体分组
一个UI界面或者所有UI界面为一个包
一个角色或者所有角色为一个包
所有场景共享的部分为一个包
2:按照类型分组
所有声音资源为一个包
所有Shader为一个包
所有模型为一个包
所有材质为一个包
3:按照使用分组
把在某一个时间内使用的所有资源打包成一个包
按照关卡分 一个关卡需要的所有资源 包括角色 贴图 声音等为一个包
按照场景分 一个场景需要的资源为一个包
4:打包注意事项
把经常更新的资源放在一个单独包内 与不经常更新的包分离
把需要同时加载的资源放在一个包内
可以把其他包共享的资源放在一个单独的包中
把一些需要同时加载的小资源打包成一个包
如果同一个资源有两个版本 可以考虑通过后缀区分
创作不易 觉得有帮助请点赞关注收藏~~~