美文网首页Unity技术分享
[Unity] 在Unity中导入Android原生插件

[Unity] 在Unity中导入Android原生插件

作者: 嘿小药罐 | 来源:发表于2018-12-21 15:32 被阅读1次

            近期接到了一个新的需求是接入台湾版的SDK。从SDK提供商那边拿到的分别是Android端和iOS端的两个包,没有直接提供支持Unity接入的unityPackage,那就只能分开接入了。本文描述的是接入Android端的过程,以及血泪史。。

            Android端拿到的是一个aar包,里面是一些API供Android原生调用,要放入Unity供Unity调用的话,是需要接入UnityPlayerActivity,我的思路就是创建一个Android Library引用SDK包,并编写供Unity调用的函数,然后导出aar包。将这个aar包及SDK的aar包放入Unity使用。

            那么就先开始创建一个项目吧。

    填写项目信息 对应的Unity中的packageName 选择API 选择Empty Activity 填写Activity名字

            要编写供调用的函数首先要找到Unity提供的 classes.jar 这个包,文件的位置在你的Unity安装项目目录:Unity -> Editor -> Data -> PlaybackEngines -> AndroidPlayer -> Variations -> il2cpp -> Release -> Classes。如果找不到Unity安装目录可以右击桌面的Unity图标,选择“打开文件所在的位置”,就能够到达Data文件夹,然后逐级往下找就能找到啦。

    就是它

            接下来要做的就是将classes.jar文件导入Android Studio的libs文件夹中,点击app,然后双击libs文件夹就能找到libs的位置了,然后复制jar包,粘贴进去。

    找到libs 加入classes.jar

           导入后,需要在app级的build.gradle中加入引用(如下),这样就可以使用这个jar包了~

    implementation files('libs/classes.jar')

    配置gradle文件

            点击右上角的Sync Project with Gradle Files按钮,或者提示条上的Sync Now可以检查build.gradle文件有没有出错。

    Sync Project

            这个时候,重复上述导入jar包的步骤就可以导入SDK的aar包了,同样放在libs文件夹中,并在build.gradle里面配置引用,并且配置aar包需要的其他配置。aar包的引用配置跟jar包一样:

    implementation files('libs/包名.aar')

    dependencies配置

            这时候可以在MainActicity.java文件中写Unity交互代码了!本文就不赘述代码的编写了,将在另一篇文章中写Unity和Android交互。

            写完Java代码后,就要开始导出aar包了,在导出aar包前还有一些事情要做,就是修改build.gradle配置。我们在新建一个Android Studio项目时,默认设置为application,这时候build的话会获得一个apk包,所以要修改。

    applyplugin:'com.android.library'

    修改build配置

            这时将复制一份AndroidManifest文件供导入Unity使用,然后修改项目中的AndroidManifest文件:

    修改后的AndroidManifest

            然后修改activity_main.xml文件

    修改后的activity_main.xml

            点击Build -> Build Bundle(s)/APK(s) -> Build APK(s) 打包

    打包

            这时候会获得一个app-debug.aar的包,位置如图

    aar包位置

             在导入Unity之前,需要删除这个aar包中的classes.jar以及引用的sdk包,不然在Unity打包的时候会发生冲突。如图,找到aar所在位置,右击打开aar,找到libs文件夹,删除里面的文件。

    找到文件所在位置 右击打开 找到libs文件夹 删除这两个文件

            然后将这个文件拖入Unity项目,并且把sdk包拖入Unity项目中,同时还有AndroidManifest文件以及Unity中需要配置的gradle文件。其中,AndroidManifest文件可以直接从自己的项目中拷贝出来,gradle文件需要复制Unity提供的模板文件,然后进行修改。找到Unity项目Unity -> Editor -> Data -> PlaybackEngines -> AndroidPlayer -> Tools -> GradleTemplates,复制 mainTemplate.gradle 文件到Unity项目中。

    gradle文件 导入Unity后

            打开 mainTemplate.gradle 文件,找到dependencies,将之前在Android Studio项目中所写的SDK所需配置复制到里面,就完成Unity的build配置了。

    mainTemplate.gradle

            打开导入Unity的AndroidManifest文件,做一些修改

    Unity中的AndroidManifest

            接下来就可以在Unity中编写代码了,写完就可以打包了。

            在Unity中使用Gradle打包将写于下一篇文章。

    相关文章

      网友评论

        本文标题:[Unity] 在Unity中导入Android原生插件

        本文链接:https://www.haomeiwen.com/subject/ormmkqtx.html