【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商店上架测试之后再做介绍。


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

相关文章
|
24天前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
70 6
|
22天前
|
Android开发 UED
Android 中加载 Gif 动画
【10月更文挑战第20天】加载 Gif 动画是 Android 开发中的一项重要技能。通过使用第三方库或自定义实现,可以方便地在应用中展示生动的 Gif 动画。在实际应用中,需要根据具体情况进行合理选择和优化,以确保用户体验和性能的平衡。可以通过不断的实践和探索,进一步掌握在 Android 中加载 Gif 动画的技巧和方法,为开发高质量的 Android 应用提供支持。
|
23天前
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
|
25天前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
25 3
|
26天前
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
24 2
|
1月前
|
XML 前端开发 Android开发
Android View的绘制流程和原理详细解说
Android View的绘制流程和原理详细解说
35 3
|
25天前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
17 0
|
2月前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等, 首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍:
49 4
|
2月前
|
Android开发 开发者
Android面试之Activity启动流程简述
每个Android开发者都熟悉的Activity,但你是否了解它的启动流程呢?本文将带你深入了解。启动流程涉及四个关键角色:Launcher进程、SystemServer的AMS、应用程序的ActivityThread及Zygote进程。核心在于AMS与ActivityThread间的通信。文章详细解析了从Launcher启动Activity的过程,包括通过AIDL获取AMS、Zygote进程启动以及ActivityThread与AMS的通信机制。接着介绍了如何创建Application及Activity的具体步骤。整体流程清晰明了,帮助你更深入理解Activity的工作原理。
51 0
|
2月前
|
图形学 开发工具 git
Unity与版本控制:游戏开发团队如何利用Git打造高效协作流程,实现代码管理的最佳实践指南
【8月更文挑战第31天】版本控制在软件开发中至关重要,尤其在Unity游戏开发中,能提升团队协作效率并避免错误。本文介绍如何在Unity项目中应用版本控制的最佳实践,包括选择Git、配置项目以排除不必要的文件、组织项目结构、避免冲突、规范提交信息以及使用分支管理开发流程,从而提高代码质量和团队协作效率。
203 1