这是本人近期将unity项目模型导入到Android的学习经验的一个总结。

1.unity导出Android工程

将unity项目导入到Android,首先要在unity内导出一个Android工程文件

android apk build unity 原理 unity android studio_unity3d

一般情况下就是勾选Export Project,然后导出就行。如果还有其他要求或者配置可以在左下角Player Settings进行配置等。unity这方面我没有特别深入的学习,大家可以搜索查阅一下资料。

(我这边使用的是之前unity官网的例子的unity项目,这个官方例子在B站上有博主的视频教学。资源我放在下面:

将Unity用作Android应用中的库
github地址:https://github.com/Unity-Technologies/uaal-example
论坛地址:https://forum.unity.com/threads/integration-unity-as-a-library-in-native-android-app-version-2.751712/ )

导出的unity项目文件大致是这样的: 

android apk build unity 原理 unity android studio_android_02

2.Android创建、unity导入

(1)首先新建一个Android项目

android apk build unity 原理 unity android studio_android_03

包名Package name跟unity的包名设置成一致,unity包名一般是com.unity3d.player。包名不一致的话,我试过也可以实现,但是在调用的时候要指明包,容易混淆,可能还有其他的一些问题,个人也不是很清楚。推荐保持一致,避免麻烦。Android项目名Name等随意。

android apk build unity 原理 unity android studio_android-studio_04

(2)将unity项目以Module的方式导入Android。

android apk build unity 原理 unity android studio_Android_05

(3)选择unityLibrary导入。点击Finish。

android apk build unity 原理 unity android studio_unity3d_06

(4)导入之后,为Android添加unityLibrary的引用。

左上角File——>Project Structure...

android apk build unity 原理 unity android studio_unity3d_07

选择Dependencies  ——>  app ,然后点击右边这个加号 + ,选择第三个Moudule Dependency

android apk build unity 原理 unity android studio_android_08

勾选刚刚导入的unity,点击OK。再点击上图的OK。

android apk build unity 原理 unity android studio_unity_09

(5)配置 Android 以及 unity 的 build.gradle 文件。

将SDK配置成当前Android版本可以运行。Android 以及unity的SDK确保要一样,不然会报错,比如这个minsdk。Build无误就算是导入完成了!

android apk build unity 原理 unity android studio_unity3d_10

3.Android  启动运行 unity

(1)在unity的AndroidMainfest.xml文件

把<intent-filter>-->删掉或者注释掉,留着的话,当我们把程序运行到手机或者模拟机上时会有两个图标。

其次是在<activity>里加入这行代码,实现多线程,避免在从unity返回Android时也将Android界面也结束了。

android:process=":raadidcard"

android apk build unity 原理 unity android studio_unity_11

在app的AndroidMainfest.xml文件里,在图中位置加入这两行代码:

xmlns:tools="http://schemas.android.com/tools"
tools:replace="android:icon,android:theme,android:allowBackup"

android apk build unity 原理 unity android studio_Android_12

 

(2)之后在app的build.gradle里加入这行代码。

ndk {
            abiFilters 'armeabi-v7a'
        }

android apk build unity 原理 unity android studio_Android_13

其次在app的main->res->values->strings.xml里加入这行代码。

<string name="game_view_content_description">Game view</string>

android apk build unity 原理 unity android studio_Android_14

进行这两步操作的原因是,我在运行到手机时,他显示硬件不支持或者闪退。加入上面两个代码后就可以正常启动unity。

android apk build unity 原理 unity android studio_unity_15

(3)点击按钮启动unity

        在主工程的activity_main.xml 文件里添加一个按钮。MainActivity.java 里加入启动事件,如果在这里layout标红的话,就把鼠标移到layout下面,建立一个layout就行,我分析是主工程的问题,这个影响不大。

android apk build unity 原理 unity android studio_android-studio_16

android apk build unity 原理 unity android studio_android_17

4.启动运行

android apk build unity 原理 unity android studio_unity_18

android apk build unity 原理 unity android studio_unity_19

结语:unity导入Android的方法有多种,这只是其中之一。希望这篇文章对你有所帮助。