1.androidStudio创建新项目(参数:API选16,Empty Activity)

2.创建新模块:

android aar怎么给unity使用 unity aar包_android


3.创建MainActivity:

android aar怎么给unity使用 unity aar包_android_02


4.删除res/layout文件夹下的activity_main.xml,删除MainActivity中setContentView(R…)这一行。

5.复制Unity中classes.jar文件到新建库的libs下,选择刚刚的classes.jar右键选择Add As Library,选择添加到新建的模块下(如果安卓这边不需要调用Unity方法,可以忽略这一步)。

6.选择默认的空工程,复制AndroidManifest文件中application标签中的内容到新建库的AndroidManifest中对应的地方,删除把报红的内容(注意尖括号),android:label=”应用程序名字”,添加

android aar怎么给unity使用 unity aar包_jar_03


7.修改MainActivity的继承关系为继承自UnityplayerActivity,会自动导入所需的包

8.编写所需的方法,选择Build->MakeModule

9.

android aar怎么给unity使用 unity aar包_Unity与安卓交互_04


10.修改aar包内容:打开aar包,删除libs里面的classes.jar(Unity2017版本的需要将aar包中的classes.jar复制进libs文件夹里面),删除aar包中AndroidManifest.xml文件的icon、label两行

11.Unity中新建Plugins/Android文件夹,复制aar包进去,复制生成的AndroidManifest.xml进去,此时,aar包中以及同级目录下各有一份AndroidManifest文件

android aar怎么给unity使用 unity aar包_android_05


android aar怎么给unity使用 unity aar包_jar_06


12.新建脚本,调用aar包中的方法:

//获取位于com.unity3d.player包下的UnityPlayer类

AndroidJavaClass jc = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”);

//获取jc所代表的类下的对象

AndroidJavaObject jo = jc.GetStatic(“currentActivity”);

//单独的Call代表没有返回值,泛型的Call代表有返回值,返回值类型在尖括号定义,参数:第一个为方法的名字,后面的可变参数依次为方法所需的参数

text.text = jo.Call(“add”, 10, 15).ToString();安卓调用Unity的方法:AndroidStudio中调用格式:

UnityPlayer.UnitySendMessage(s:”挂载脚本的物体名”,s1:”方法名”,s2:”参数”);

android aar怎么给unity使用 unity aar包_Android_07

android aar怎么给unity使用 unity aar包_Android_08


打包时注意,playersetting中的PackegName需与Plugins/Android下的AndroidManifest中的包名一致

备注:如果androidstudio中找不到文件夹,可点击左上角选择Android或者Project来切换视图另一种方法为:安卓提供class供Unity调用,新建库/Java,选择第一个文件,右键新加Class

android aar怎么给unity使用 unity aar包_Unity与安卓交互_09


android aar怎么给unity使用 unity aar包_Android_10


做完Make Module,将编辑好的jar包复制进Unity中对应的文件夹下,调用方式略微不同

android aar怎么给unity使用 unity aar包_android_11


Test后面可以添加一些参数,这些参数为这个类的构造方法所需的参数,如果方法为静态的,调用如下

android aar怎么给unity使用 unity aar包_android_12