序言:此篇介绍在(1)的基础上引入Unity的API库进行交互,原生调Unity
1.导入Unity库
注意:
(1)老版本Unity的classes.jar里包含UnityPlayerActivity API
(2)新版本Unity的UnityPlayerActivity API 在UnityEditor安装路径中,需单独导入,后续介绍
1.1导入unity的classes.jar
打开Unity目录:Unityx.x.x\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
把classes.jar复制到app/libs文件夹下
1.2 为创建的Library Module添加“classes.jar”库依赖
方式一(推荐):
右键jar文件,选择Add As Library,引用到app库中,选择OK
到模块中的build.gradle 查看是否成功引用,若没有此句,可手动添加上
手动添加的话,修改代码后需要点击 sync now
注:可以将 implementation 改为 compileOnly ,避免生成aar时包含unity的classes.jar包
方式二:
1)File/Project Structure - Dependencies - app(创建的LibraryModule)
2) 添加jar dependency,OK-Apply-OK
3)查看依赖添加是否成功:打开module(app)下build.gradle文件里的dependencies
2.编写原生调Unity的代码
主要是调用Unity的api : import com.unity3d.player.UnityPlayer.UnitySendMessage()
3.导出aar,将jar导入Unity
由于目前还是仅编写的原生API库,则只需要jar即可
点击Build - Make Project 删除aar
若是导入aar包,则需要将aar内的根目录下的classes.jar移除,因为此jar包是之前导入AS的unity api包,unity已经包含有,必须移除避免unity冲突报错
4.Unity编写对应的被调函数,打包APK测试
下一篇传送门:
Unity与原生交互之Unity篇——AndroidStudio导出aar/jar包供Unity使用实现交互全流程(3)_人生若只如初見♫的博客-CSDN博客