【Unity3D】Bundle打包及加载流程Android篇

简介: 生成Bundle文件主要是如何对资源进行设置Bundle名及其分类的过程。目前有两种方式,第一种就是在编辑器里面设置每个资源的Bundle名称(如图1),这是最简单直观的操作方式;另一种方式就是通过编写代码并配合资源配置文件进行控制,先通过代码遍历项目工程的资源然后根据资源配置设置其Bundle名称,也可以暴力的按照资源类型进行分类,由于不同项目的控制方式不同,因此就不过多介绍。

【Unity3D】Bundle打包及加载流程Android篇


一、生成资源Bundle文件


   生成Bundle文件主要是如何对资源进行设置Bundle名及其分类的过程。目前有两种方式,第一种就是在编辑器里面设置每个资源的Bundle名称(如图1),这是最简单直观的操作方式;另一种方式就是通过编写代码并配合资源配置文件进行控制,先通过代码遍历项目工程的资源然后根据资源配置设置其Bundle名称,也可以暴力的按照资源类型进行分类,由于不同项目的控制方式不同,因此就不过多介绍。


微信图片_20220424143753.png


   将资源都设置好对应的Bundle名称后,即可进行生成Bundle文件的操作,其代码就相对简单,只需调用Unity现成的API接口。在Assets/Editor(如果没有需创建)目录中创建一个合适名称的cs文件,里面加入一个生成Bundle的方法如下。然后就可以通过菜单上面的Tools/BuildBundleDefault生成Bundle文件。


微信图片_20220424143759.png


   [注意事项]


   1. Scene文件不能与其他资源文件设置为同一个Bundle,否则会报错误。但是多个Scene文件可以设置为同一个Bundle。


微信图片_20220424143808.png


   2. 需要记录资源和Bundle以及相关依赖的关系到文件,以便在加载的时候使用。


二、打包Apk包


   从今天也就是2021年8月1日起,上架Google的包必须是aab格式,但暂时依然先打apk包,后续文章将带来如何打aab包。同一是在Editor目录创建一个用于写打包apk代码的cs文件。这里我略去了许多的属性设置及资源检查处理相关的代码(Bundle文件全部已放在Assets/StreamingAssets目录)。


微信图片_20220424143816.png


 

三、运行时加载资源


   运行时加载游戏资源前首先需要加载Bundle文件,这里需要注意的就是同一个Bundle在没有卸载前不能重复加载,否则会报错。


微信图片_20220424143823.png


   Bundle加载完成后,就可以通过bundle.LoadAsset(资源路径)获取对应的对象,然后进行初始化显示。


微信图片_20220424143939.png


   [注意事项]


   1. 在生成Bundle的时候有特别说明需要将资源与Bundle的关系记录下来,其目的就是加载资源时加载的接口只需传入要加载的资源名称即可,而无需关心其在哪个Bundle中,当然加载接口内部需实现先通过资源名称查找Bundle并进行加载后,在返回对应的资源。


   2. 如果这个资源有依赖的资源在其他的Bundle,也需要将其他的Bundle加载进来,否则就会出现丢失资源的问题。


   3. 加载场景的方式比较特殊需要单独处理。



四、总结


   本篇介绍了生成Bundle文件、打apk包、然后运行时加载Bundle文件读取资源的流程。主体的流程就这么多,打包过程中还可以加入很多其他的流程,例如资源检查、插件打包选择等等。关于Android App Bundle(AAB)包目前已经完成了整体的打包和加载流程,为了确保准确性将会在Google商店上架测试之后再做介绍。


 欢迎微信搜索"游戏测试开发"关注一起沟通交流。

相关文章
|
4月前
|
安全 Java Android开发
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
如何解压OTA升级包、编辑升级包内容(例如移除不需要更新的分区)、重新打包、签名以及验证OTA文件的过程。
366 2
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
|
3月前
|
图形学 开发工具 git
Unity与版本控制:游戏开发团队如何利用Git打造高效协作流程,实现代码管理的最佳实践指南
【8月更文挑战第31天】版本控制在软件开发中至关重要,尤其在Unity游戏开发中,能提升团队协作效率并避免错误。本文介绍如何在Unity项目中应用版本控制的最佳实践,包括选择Git、配置项目以排除不必要的文件、组织项目结构、避免冲突、规范提交信息以及使用分支管理开发流程,从而提高代码质量和团队协作效率。
314 1
|
4月前
|
图形学 Android开发 iOS开发
穿越数字洪流,揭秘Unity3d中的视频魔法!Windows、Android和iOS如何征服RTSP与RTMP的终极指南!
【8月更文挑战第15天】在数字媒体的海洋中,实时视频流是连接世界的桥梁。对于那些渴望在Unity3d中搭建这座桥梁的开发者来说,本文将揭示如何在Windows、Android和iOS平台上征服RTSP与RTMP的秘密。我们将深入探讨这两种协议的特性,以及在不同平台上实现流畅播放的技巧。无论你是追求稳定性的RTSP拥趸,还是低延迟的RTMP忠实粉丝,这里都有你需要的答案。让我们一起穿越数字洪流,探索Unity3d中视频魔法的世界吧!
75 2
|
4月前
|
Java 网络安全 开发工具
UNITY与安卓⭐一、Android Studio初始设置
UNITY与安卓⭐一、Android Studio初始设置
|
4月前
|
图形学 Android开发
小功能⭐️Unity调用Android常用事件
小功能⭐️Unity调用Android常用事件
|
3月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
160 0
|
4月前
|
图形学 数据安全/隐私保护 iOS开发
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
|
5月前
|
Android开发
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
152 0
|
6月前
|
编解码 算法 图形学
【unity小技巧】减少Unity中的构建打包大小
【unity小技巧】减少Unity中的构建打包大小
183 0
|
6月前
|
Java 开发工具 Android开发
详细解读Android开发DNK开发将.c文件打包成os
详细解读Android开发DNK开发将.c文件打包成os
35 0