Unity3D导出Android工程指南

1.Unity导出Android项目

1.1 Unity导出关键配置以及步骤

aar unity3d 导出android unity导出android工程_Android

                                                        图1 Unity项目切换到Android平台,并且勾选Export Project。

aar unity3d 导出android unity导出android工程_jar_02

                                                                        图2 OtherSetting中,选择相应的架构

aar unity3d 导出android unity导出android工程_android_03

                                                                   图3 确保Unity中配置了正确的SDK,NDK

aar unity3d 导出android unity导出android工程_android_04

                                                                     图4 点击build界面下方的Export,导出项目

aar unity3d 导出android unity导出android工程_xml_05

                                                                                      图5 导出的项目结构

1.2 导出项目说明

1.导出的Android项目会把Unity工程中使用到的jar,so整合在一起,Unity本身会生成jar和对应的so,第三方(项目开发者主动引用的jar和so)的不会改变,Export只是简单的Copy操作,意味着关注度低一些,在已有的Android项目中可以代替用到的第三方的jar和so。

2.Unity中可能会有多个Scenes,但是Unity运行到Android设备上时,本质是一个Activity,切换Scene都是在同一个Activity中切换界面。

2.Export项目结构

aar unity3d 导出android unity导出android工程_unity3d_06

                                                                                       图6 红圈需要重点关注

2.1 libs文件夹

  Libs文件夹存放是Unity项目中Plugin下面的jar包,以及Unity项目Export时生成的对应的jar,如下图,unity-classes.jar是Android和Unity生成so交互的中间件,一般不会重新生成,如果换Unity3d工具版本(例如:原来使用2018.4.13f,后来使用2019.1.1f),这个jar就会重新生成,意味着这个jar需要替换为新生成的jar。若这个jar不替换,在运行Android工程时,会报错(例如:JNI方法找不到)。

aar unity3d 导出android unity导出android工程_Android_07

                                                                                    图7 unity本身生成的jar

2.2 proguard-unity.txt

  proguard-unity.txt文件是Unity混淆文件,在Unity中如果没有修改过,这里只会生成Unity自身的混淆逻辑,第三方jar的混淆需要自行添加。

2.3 src文件夹

 

aar unity3d 导出android unity导出android工程_xml_08

                                                                                  图8 src下main文件夹的目录

  1. assets文件夹很重要,Unity项目中的所有模型、场景和数据都会在这里生成。
  2. Java文件夹,关注度低,第一次需要关注,只包含一个java文件,也是唯一的Activity,这个文件一般不会变。
  3. jniLibs文件夹很重要,这个文件夹包含Unity自动生成的so以及第三方依赖的so。
  4. res文件夹关注度低,第一次需要关注,除非在Unity的Plugins中有新增过资源。
  5. AndroidManifest.xml 关注度低,第一次需要关注,集成时,只需要关注Unity生成Activity名称,添加到已有Android项目的AndroidManifest中,以及一些权限等特殊的配置。

2.3.1 assets文件夹

   

aar unity3d 导出android unity导出android工程_xml_09

图9 assets文件夹的目录

assets文件夹下,主要关注bin目录,此目录下的数据,每次Export工程,都会重新生成,意味着每次Export项目,都要全部替换此目录下的数据。

2.3.2 java文件夹

aar unity3d 导出android unity导出android工程_android_10

                                                                                  图10 java文件夹的目录

Java文件夹下,只有一个Acticity,基本不会变动,不用每次Export后替换。

2.3.3 jniLibs文件夹

aar unity3d 导出android unity导出android工程_jar_11

                                                                                         图11 jniLibs目录

此目录下存放Unity项目中所有的so库,以及Unity本身生成的so库,第三方依赖so不会改变,我们只需要关注libil2cpp.so、libmain.so和libunity.so这三个文件,因为每次Export,都会生成新的so库,需要主动替换到已有Android项目中。

2.3.4 res文件夹

res虽然不用特别关注,但是根据2018.4.13fExport出的项目,发现strings.xml中有一行item必须添加到已有Android项目中,因为Unity生成的jar中,强制依赖这个资源。如下图。

aar unity3d 导出android unity导出android工程_android_12

图12 strings.xml内容

总结

  1. 第一次导出的项目需要关注每个文件,合入到已有Android项目中。之后只需要替换以下文件:

a.assets下的bin/data

b.jniLibs下的libil2cpp.so、libmain.so和libunity.so


2.目前我使用的版本是2018.4.13f,太旧与太新的UnityExport后可能会有所不同,此文可做参考。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空