1、Unity下C#与Java交互的代码:
using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
using (AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"))
{
jo.Call(method, args);
}
}
a)、using的用法是定义一个范围,在范围结束时回收这段范围内所申请的内存;
b)、method就是java代码中的方法,args就是传给method的参数
PS:
Unity与java的交互除了可以使用AndroidJavaObject的对象调用call来访问以外,还可以使用AndroidJavaClass的对象调用callStatic函数来调用java中静态类的静态方法
using (AndroidJavaClass jc_info = new AndroidJavaClass(className))
{
jc_info.CallStatic(staticMethodName, param);
}
2、Java下与Unity的交互代码:
UnityPlayer.UnitySendMessage("Main Camera", "show", edit.getText().toString());
a)、要使用UnitySendMessage这个静态方法需要往Android工程引入一个jar包,包的所在路径为Unity的安装目录:\Editor\Data\PlaybackEngines\androidplayer\development\bin\classes.jar,将这个包拷贝到Android工程的libs目录下就可以在代码中通过import com.unity3d.player.UnityPlayerActivity;和import com.unity3d.player.UnityActivity;来引用了