使用jar包进行Unity与Android交互分两种方式。
一种是通过扩展MainActivity。
另一种是提供扩展类。
第一种扩展MainActivity方式作用和第一篇讲的使用arr包基本相同,且这种方式Unity官方已不推荐使用,以后可能会逐渐废置。
本篇主要讲第二种方式,提供扩展类。这种方式不需要导出AndroidMini。但相对的也有局限性,比如不能通过Activity上下文对应用进行操作,只能提供方法供Unity调用。
首先,使用AndroidStudio创建一个新工程。
File->New->NewModule,创建一个AndroidLibrary。
找到Unity提供的classes.jar文件,我的是在D:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes。
复制到新建的Library的libs目录下,选中classes.jar,右键,Add As Library。
这一步主要是Android调用Unity中的方法时需要的,如果只用Unity调用Android,可以不用导入classes.jar。
选中新建的classlibrary,点击OK。
新建一个JavaClass。
在新建的类中写一个add方法,UnityPlayer.UnitySendMessage是classes.jar提供的Andorid与Unity交互的方法,第一个参数为游戏物体名,第二个参数为调用的方法名,第三个参数为调用时传递的参数。 待会的Unity工程我会在Canvas上挂一个脚本,里面有一个名为ChangeColor的方法,这里的add方法会调用到ChangeColor方法。
Build->Make Module ‘classlibrary’,等待执行完毕。
复制导出的classes.jar文件,备用。注意,一定要复制debug目录下的jar包,不要复制libs文件夹里面的,libs里面的jar包是Unity提供给Android使用的包,外面的才是我们刚刚导出的jar包。
新建一个Unity工程,在Asset目录下新建文件夹->Plugins->Android,把刚刚复制的classes.jar包复制过来。这个jar包名字可以自己改。
新建Test脚本,用来调用刚刚导入的jar包中的add方法,并将结果显示在Text上。
注意:new AndroidJavaObject的参数是安装工程的报名+类名。
将Test降本挂在Canvas上。
File->Build Setting,将平道切换到Android。
修改PlayerSetting中的包名,基本可以随意改。
点击Build,开始打包。
打包完成后安装到手机,运行程序。显示数字5,说明Unity调用Android成功。字体变为红色,说明Android调用Unity成功。