当我们在做unity开发的时候经常需要一些其他的功能,这时候就需要与android进行通信,那么如何与android进行通信呢?
首先你需要在android studio中创建一个module,然后在unity中找到classes.jar这个文件。放到module中的libs文件夹中将其添加到类库中。
然后新建一个主类继承UnityPlayerActivity类,在其中写方法供unity调用。
然后对module进行编译,然后在module中的build/intermediates/bundles/debug下将classes.jar替换libs中的classes.jar,libs中的classes.jar是unity自带的,debug下的classes.jar是编译后的,所以你需要进行替换。
然后在unity中Assets资源中创建Plugins/Android文件夹,然后将module编译后的res、libs、AndroidManifest.xml复制到Android文件夹中。
然后你在C#脚本中,通过以下代码来调用android的方法。
AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
//获取当前activity的对象,它代表android中的MainActivity
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject> ("currentActivity");
//调用方法,参数1方法名,参数2和3是方法的参数
int res = jo.Call<int> ("test", 56, 91);