unity 调用 java_实现Unity 调用Android中的java代码

这篇博客详细介绍了如何实现在Unity游戏中调用Android原生Java代码。首先,在Android工程中引入Unity的classes.jar,并编写一个继承UnityPlayerActivity的类。接着,创建Java方法供Unity调用,静态或非静态方法均可。然后,通过Unity的AndroidJavaClass和AndroidJavaObject调用这些方法。最后,强调了在Unity中设置正确的Bundle Identifier和避免使用可能导致错误的Content处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现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培训】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值