前言
Unity3D在三维显示,AR开发上都有很多工具而且很方便,有一个App开发项目需要用Unity3D负责三维显示部分功能。本方法使用将Unity项目以.arr文件集成安卓原生工程。本文涉及的软件版本为:Android Studio 4.1.1 和 Unity2018.3.14f1 / Unity2019.4.16f1c1一、Unity项目导出为安卓工程
假设Unity已经配置好了Android的开发环境。首先,在File->Build Settings中切换为Android平台。第二步,在Player Settings->Other Settings设置好“Package Name”、“Minimum API Level”和“Target API Level”,后两个两个API值需要和Android原生项目版本一致。
导出Android工程的最后一步在Unity2018和Unity2019上有一点不同,都需要勾选 “Export Project” 这选项,使用2018导出时在 “BuildSystem” 项选择 “Gradle”。
导出后的工程用Android Studio打开,Unity2018和Unity2019输出的工程结构有一些不一样,Unity 2019 生成的安卓gradle工程有两个模块,unityLibrary module 和 launcher module,2018只用一个。如果Unity2019导出的工程在Android Studio出现Gradle同步错误,可参考这篇文章写的解决方案:Android Studio解决Gradle同步错误。
二、Unity工程导出为aar
以2018的gradle工程为例,将build.gradle中的apply plugin: ‘com.android.application’ 改为 apply plugin: ‘com.android.library’,删除applicationId这一项,删除applicationId ‘com.xxx.xxx’,删除以下内容
bundle {
language {
enableSplit = false
}
density {
enableSplit = false
}
abi {
enableSplit = true
}
}
在src->main->AndroidMainfest.xml中删除一下内容
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
最后点击Build->Rebuild Project就可以导出aar文件,aar文件的位置在build->outputs->aar,如果需要修改aar包名的文件,可以在build.gradle中的android{}中添加:
android.libraryVariants.all { variant ->
variant.outputs.all {
def fileName = "包名.aar"
outputFileName = fileName
}
}
以上为Unity2018导出aar过程,如果是2019的话unityLibrary module 和 launcher module中的build.gradle需要在同样位置做相同处理,最后会生成两个aar文件,后续都需要导入Android原生工程中。
三、总结
本文主要介绍了如何使用Unity导出Android工程并生成用于集成Android原生应用的aar包,需要注意的是Unity2018和Unity2019的过程有些许不同,但是原理是一样的
参考资料
Integration Unity as a library in native Android app Version 2
Unity2019导入Android Studio详细教程