实现Unity 调用Android中的java代码
Android 法式
按照变态流程创建一个Android工程。
在unity的装配路子Editor\Data\PlaybackEngines\androidplayer\bin 下找到classes.jar(windows)
将Unity的classes.jar 拷贝到Android工程下libs文件夹下,并引入工程里(右键 >Build path > Add to Build path )
开始编写java代码:
首先要写一个类继承UnityPlayerActivity
尔后按照变态java格式编写需要Unity调用的办法
可以或许是静态办法也可以或许是普通办法只是在Unity中的调用办法不同
生成jar文件
编译需要Unity调用的工程 project > Build All
导出jar文件,选中src和gen文件夹,右键 > Export > JAR file > next > finish
Unity法式
变态创建Unity工程
在Unity目录里创建如下Plugins目录结构,并将建立好的jar文件导入到unity中,如利用到android中的资源文件,要把干系资源文件也拷贝的对应的目录下。(manifest文件一定要拷贝曩昔。)
创建AndroidJavaClass和AndroidJavaObject类的实例,比喻
public static AndroidJavaClass mBluetooth;
public static AndroidJavaObject mContext;
mBluetooth = new AndroidJavaClass("com.wangwang.test.mActivity");
using (AndroidJavaClass cls_UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
mContext = cls_UnityPlayer.GetStatic("currentActivity"); //获得Android工程中继承UnityPlayer的类的实例
}
AndroidJavaClass可以或许用来调用静态办法,AndroidJavaObject可以或许用来调用非静态办法,比喻:
//调用获得到的实例中的办法。java中前去的参数典范用泛型来表示,第一个参数为java中对应的办法名,后面的参数为要传入该java办法的参数。
mContext.Call("changeServiceState","test");
mBluetooth.CallStatic("showToast",str , time); //调用类中的静态办法
最好实践
利用using办法可以或许减少一些不消要的内内存开销,如:
//cls_UnityPlayer 在利用后会被销毁
using (AndroidJavaClass cls_UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
mContext = cls_UnityPlayer.GetStatic("currentActivity");
}
Java中继承UnityPlayer的类中需要Content的地方最好都利用UnityPlayer.currentActivity,不然可以或许会出现莫名其妙的差错
Unity中的android干系的设置设备陈设 Bundle Identifier* 可以或许需要该为java中项目对应的包名。
想知道更多关于IT行业的信息吗?想远远不如行动,行动起来,一起加入达内,一起进入IT行业,跟着达内的脚步,一起走进如今的互联网信息时代,带给你不一样的色彩生活——【深圳Unity3D培训】