Unity3D项目集成Android原生工程进行App开发(一)


前言

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详细教程


版权声明:本文为weixin_43975743原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。