最后我会给出项目源码
1.首先要明白unity与java之间的通信
unity调用java
// 直接调用java的静态方法, 我比较喜欢这种,简单明了
AndroidJavaClass klass = new AndroidJavaClass("com.unity.player.UnityInvokeAndroid");// 这是包名加你要调的类名
klass.CallStatic ("java方法名", "参数");
// 这种是调用非静态的方法, 参数是固定的
AndroidJavaClass klass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");// 这里的这个包名必须要这样写
AndroidJavaObject jo = klass.GetStatic<AndroidJavaObject>("currentActivity");
jo.CallStatic ("java方法名", "参数");
unity调用java的方法还有很多,调用非静态,有返回参数等,在这就不一一介绍了,大家可自己上网查。
java调unity
java调unity就更简单了
UnityPlayer.UnitySendMessage(unity的对象名字, 方法名, "参数");
基础介绍完毕,接下来开始进入正题
我是这么做的,建一个空的unity项目,然后把项目导出成安卓项目。
记得 BundleIdentifier要修改成自己的,然后勾上红框中的 Google Android Project,这样下面Build按钮就会变成Export的了。
用eclipse导入刚导出的项目,然后删除 com.unity.player下的三个自带的文件
然后创建一个自己的java类
类里是这样的
在类中写好方法后把项目的IsLibrary 勾上
这时你就会看到bin下有个架包静静的躺在那里啦。这个就是你自己写的那个类的架包。
接下来把这个架包放到unity中,还有安卓工程里的res和mainfest文件也复制到unity中。(记得mainfest中的activity要改成你刚创建的那个类)
完成后,unity中的文件路径是这样的
接下来你就可以尽情的用untiy去调java啦!!!
项目地址 :http://pan.baidu.com/s/1hs8xcsk 密码 4lfx