查看原文
其他

程序丨Unity编安卓包,需要注意哪些要点?

vian 腾讯GWB游戏无界 2022-08-30

本文主要介绍编安卓包的内容分析、过程、运行效果、注意事项、拓展相关,希望加深对出包流程、工程特殊目录、更新等相关的理解。


编安卓包前准备


1.unity5.6.2f1,安卓sdk,javaJDK。



2.在build settings面板,选中Android,如果没有安装Android模块,需要先下载安装。具体如下所示:



3.安装完毕之后才能开始build。如何编包具体不在本文描述,重点是分析编包的过程和相关内容。


编包分析


1.工程目录简介


这里主要说明一下Resource、StreamingAssets这两个目录。


Resource下的资源不管用不用都会打到包里去,会做压缩处理。被Resource里的内容引用到的外面内容也会被打包。


StreamingAssets下的资源也会打到包里但它不会压缩,该目录为只读,各个平台Application.streamingAssetsPath路径也不一样。


测试工程目录如下:



2.一般会把一些ab包放到StreamingAssets下,编包时会一起编进去。这里需要注意的是,为了编包不产生多余文件,我们需要把已经打包ab包的原始文件移出去,比如上文uia目录可整体移出,然后在编包,编完在移回来。当然整个过程完全可以脚本执行,感兴趣的去研究下,这里不做阐述。


下面对照看看打ab包前后编的apk包解压内容,具体如下:



3.运行效果


Unity编辑器里效果如下:



Hongmi note4X展示效果如下:



手游助手效果:



注意事项


1.注意打ab包设置正确的BuildTarget;


2.编包前注意移出已打ab的原始资源;


3.注意安卓的路径,起初被这个路径折腾了。还是多动手测试一下便知,我用手机最后测试使用成功的是Application.dataPath + "!assets"。


以下为网上资料说可用的各种路径,请勿尽信,测试均失败:


Application.streamingAssetsPath;

Application.dataPath + "!/assets";

"jar:file://" + Application.dataPath + "!/assets";


附上Android各路径:


Application.dataPath:

/data/app/package name-1/base.apk 
Application.streamingAssetsPath:

jar:file:///data/app/package name-1/base.apk!/assets 
Application.temporaryCachePath:

/storage/emulated/0/Android/data/package name/cache 
Application.persistentDataPath:

/storage/emulated/0/Android/data/package name/files


拓展


假如这是个外网包已发出,后面需求改了aUI.prefab资源等(未修改代码相关逻辑),我需要重新编一个ui_aui的ab包供外网去更新。要如何处理?


一些思路:


首先你不可能重新编个包吧,这样严重不符合规范。轮到CDN上场了,我们可以把更新的ab包放到CDN路径,WWW加载进来。由于streamingAssetsPath只读,我们可将更新的ab包存到persistentDataPath,后续资源版本未有更新前都可继续使用,但老的ab包我们删不了导致会存在两份资源。


今日推荐  

·如何用Unity3D实现游戏中的角色换装?

·用Unity制作一个好玩但鸡肋的操作回滚功能

·60帧的丝般顺畅!《QQ飞车手游》性能优化经验分享

↓↓↓点击阅读原文,了解更多。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存