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

简介: 【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包和包里面的资源

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

打包分组策略

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

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

1:按照逻辑实体分组

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

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

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

2:按照类型分组

所有声音资源为一个包

所有Shader为一个包

所有模型为一个包

所有材质为一个包

3:按照使用分组

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

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

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

4:打包注意事项

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

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

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

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

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

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

相关文章
|
2月前
|
图形学 开发工具 git
Unity与版本控制:游戏开发团队如何利用Git打造高效协作流程,实现代码管理的最佳实践指南
【8月更文挑战第31天】版本控制在软件开发中至关重要,尤其在Unity游戏开发中,能提升团队协作效率并避免错误。本文介绍如何在Unity项目中应用版本控制的最佳实践,包括选择Git、配置项目以排除不必要的文件、组织项目结构、避免冲突、规范提交信息以及使用分支管理开发流程,从而提高代码质量和团队协作效率。
200 1
|
2月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
150 0
|
3月前
|
图形学 数据安全/隐私保护 iOS开发
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
|
5月前
|
Rust 图形学
【unity实战】使用unity制作一个类似Rust的3D生存建造建筑系统,具有很好的吸附性(附项目源码)
【unity实战】使用unity制作一个类似Rust的3D生存建造建筑系统,具有很好的吸附性(附项目源码)
130 1
|
5月前
|
图形学
【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱10(附带项目源码)
【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱10(附带项目源码)
48 1
|
5月前
|
图形学
【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱8(附带项目源码)
【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱8(附带项目源码)
42 1
|
5月前
|
图形学
【推荐100个unity插件之19】武器拖尾特效插件——Pocket RPG Weapon Trails(2d 3d通用)
【推荐100个unity插件之19】武器拖尾特效插件——Pocket RPG Weapon Trails(2d 3d通用)
98 0
|
5月前
|
编解码 算法 图形学
【unity小技巧】减少Unity中的构建打包大小
【unity小技巧】减少Unity中的构建打包大小
150 0
|
5月前
|
图形学
【unity实战】3D水系统,游泳,潜水,钓鱼功能实现
【unity实战】3D水系统,游泳,潜水,钓鱼功能实现
166 0
|
5月前
|
图形学
【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱12(附带项目源码)
【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱12(附带项目源码)
57 0