Unity导出安卓obb包以及使用(基础APK+OBB)
obb简介
OBB(Opaque Binary Blob)文件格式,是安卓游戏通用数据包。在一些大型游戏上较为常见,同时还附以Data文件,亦或是md5.dat文件出现。通常在游戏开始前,程序会自动将obb解包至/sdcard/Android/data或者是/android/obb目录下,但也有游戏不会解包,直接读取。
前言
游戏要上架谷歌商店 除了要接好谷歌SDK外,谷歌还要求提交商店的apk必须在100M以下,对于游戏来说几乎都会大于100M,所以提交商店apk拆分成基础apk(小于100M)+obb文件,两个文件一起上传GooglPlay,用户下载的时候会连同apk+obb一起下载到用户手机上,当然对于用户来说,完全感受不到区别的。
1.Unity导出OBB文件步骤如下
打开Unity工程 File — Build Settings —Android — Player Settings — Publishing Settings — Split Application Binary
选择Build System : Gradle 来构建AS工程和OBB文件
2.Unity构建OBB工程和AS资源
如上图所示,构建成一份安卓资源和obb文件,将构建的src资源放入对应AS工程中,obb文件放入手机指定路径。
如上图所示:这里面包含了google 相关的依赖资源和Unity交互代码,把Unity生成AS工程放入对应文件即可(箭头所示)。运行后生成apk即基础apk\color{red}{基础apk}基础apk,正常情况下生成的基础apk是可以单独运行,因缺少obb资源包 游戏会卡在某个阶段,但并不会引起程序崩溃。
敲重点\color{red}敲重点敲重点:obb可以理解为就是一份游戏资源,上图红箭头所标注一定要和AndroidManifest.xml中的:value值对应上,不然会导致obb无法自动合并。
<meta-data android:name="unity.build-id" android:value="49abe192-850d-4f39-8461-a9c11795c7b3" />
3.OBB文件格式
obb文件有命名规范,如果命名规范不对程序无法读到对应文件导致基础包无法合并资源 ,从而无法完整运行游戏。命名规则如下:
格式 : main< Bundle Version Code>.<包名>.obb
例如 : main.15.com.game.demo.obb
4.测试obb文件是否能正常的跑通游戏
如果我们先运行基础APK /Android/obb/com.game.demo/文件夹会自动创建,如果没有运行我们需要手动创建对应文件夹。例如我的测试机路径 :
Honor NOTE 8\内部存储\Android\obb\com.game.demo\main.15.com.game.demo.obb
结语
菜鸟一枚,第一次写blog,如果那里写的不好或者不对请多多谅解,写blog的目的很明确:记录下自己的学习和工作经验,分享给有需要的人。
- unity导出安卓APK后图片错乱的解决办法--getResources().getIdentifier()的使用
- unity导出安卓APK后图片错乱的解决办法--getResources().getIdentifier()的使用
- Unity IMGUI 的小游戏(井字棋)制作以及怎么发布为安卓apk并且发给女孩子手机上成功运行的教程 - 3D游戏编程学习日志
- unity 3d 程序导出为安卓(.apk)的步骤
- 使用Unity打包安卓apk文件
- [Unity]Android(安卓)代码安卓APK时,使用系统安装器安装的[最正确]办法(不弹出选择打开的程序)
- unity导出安卓apk环境配置
- Android导出aar插件供Unity使用以及通过android scheme启动unityApp
- Unity安卓开发(四)Android Studio导出aar包,并在Unity使用
- Unity使用EasyAR实现AR并导出APK全教程 附带BUG解决办法
- Unity(六) 使用XML/JSON/Binary数据文件封装场景以及StreamingAssets目录的安卓平台同步
- C#基础篇 重写与重载,以及其中设计的虚方法和抽象方法的使用和区别
- 安卓签名工具SignApk.jar使用教程
- 安卓自动化测试工具MonkeyRunner之使用ID进行参数化,以及List选择某项和弹出框点击确定的写法
- Android SlidingMenu以及ActionBarSherlock的基础使用教程
- 关于 Unity NavMesh 数据的导出和使用
- Javascript笔记一 js以及json基础使用说明
- 使用mysqldump导出数据库的几种方式以及如何导入数据库
- unity基础开发----Unity3DuniSWF MovieClipBehaviour的使用
- android成长记(2)-------关于apk的生成以及使用