这是本人近期将unity项目模型导入到Android的学习经验的一个总结。
1.unity导出Android工程
将unity项目导入到Android,首先要在unity内导出一个Android工程文件
一般情况下就是勾选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项目文件大致是这样的:
2.Android创建、unity导入
(1)首先新建一个Android项目
包名Package name跟unity的包名设置成一致,unity包名一般是com.unity3d.player。包名不一致的话,我试过也可以实现,但是在调用的时候要指明包,容易混淆,可能还有其他的一些问题,个人也不是很清楚。推荐保持一致,避免麻烦。Android项目名Name等随意。
(2)将unity项目以Module的方式导入Android。
(3)选择unityLibrary导入。点击Finish。
(4)导入之后,为Android添加unityLibrary的引用。
左上角File——>Project Structure…
选择Dependencies ——> app ,然后点击右边这个加号 + ,选择第三个Moudule Dependency
勾选刚刚导入的unity,点击OK。再点击上图的OK。
(5)配置 Android 以及 unity 的 build.gradle 文件。
将SDK配置成当前Android版本可以运行。Android 以及unity的SDK确保要一样,不然会报错,比如这个minsdk。Build无误就算是导入完成了!
3.Android 启动运行 unity
(1)在unity的AndroidMainfest.xml文件
把<intent-filter>–>删掉或者注释掉,留着的话,当我们把程序运行到手机或者模拟机上时会有两个图标。
其次是在<activity>里加入这行代码,实现多线程,避免在从unity返回Android时也将Android界面也结束了。
android:process=":raadidcard"
在app的AndroidMainfest.xml文件里,在图中位置加入这两行代码:
xmlns:tools="http://schemas.android.com/tools"
tools:replace="android:icon,android:theme,android:allowBackup"
(2)之后在app的build.gradle里加入这行代码。
ndk {
abiFilters 'armeabi-v7a'
}
其次在app的main->res->values->strings.xml里加入这行代码。
<string name="game_view_content_description">Game view</string>
进行这两步操作的原因是,我在运行到手机时,他显示硬件不支持或者闪退。加入上面两个代码后就可以正常启动unity。
(3)点击按钮启动unity
在主工程的activity_main.xml 文件里添加一个按钮。MainActivity.java 里加入启动事件,如果在这里layout标红的话,就把鼠标移到layout下面,建立一个layout就行,我分析是主工程的问题,这个影响不大。
4.启动运行
结语:unity导入Android的方法有多种,这只是其中之一。希望这篇文章对你有所帮助。