unity调用普通java类_Unity中C#和Java的相互调用实例代码
1、通过C#调用Java的方法:
在C#中添加调用的一些代码,利用Unity提供的一些接口实现调用Java!
private const string JAVA_CLASS_Name = "com.unity3d.player.UnityPlayer";
private void CallJavaFunc(string javaFuncName,params object[] args)
{
try
{
//获取到AndroidJavaClass,至于这里为什么调用这个类,我也不是很清楚
using (AndroidJavaClass jc = new AndroidJavaClass(JAVA_CLASS_Name))
{
//获取到Activity
using (AndroidJavaObject jo = jc.GetStatic("currentActivity"))
{
//调用Java方法
jo.Call(javaFuncName,args);
}
}
}
catch (System.Exception ex)
{
Debug.Log("callSdk error:" + ex.Message);
}
}
//C#里就可以通过这个方法调用Java里的方法了
public void Test1()
{
int num = 1;
CallJavaFunc("JavaFuncName",num);
}
在java中主要是添加被调用的方法,方法名就是上边的字符串参数(JavaFuncName),参数需要一一对应!
public class MainActivity extends UnityPlayerActivity
{
public void JavaFuncName(final int num)
{
Log.i("C#调用了JavaFuncName,参数num:",String.valueOf(num));
}
}
我是使用eclipse创建的android工程,java中的activity需要继承UnityPlayerActivity,继承这个activity需要在你的android中填 加classes.jar包,这个包在:
你Unity的安 装路径\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release \ C lasses下,
这样就可以调用Java的方法了!
2、通过Java调用C#的方法:
在Java中添加调用的一些代码,Java调用C#主要是通过Unity封装的classes.jar包里面的UnitySendMessage方
法传递 参数实现,因为该方法只能将一个参数传递给C#的方法,所以传递多个参数的时候可以使用json。
//调用
public void Test2()
{
JSONObject pms=new JSONObject();
try {
//参数只能参一个,所以包装成json对象
pms.putOpt("FuncName","Test2");
pms.putOpt("num",1);
} catch (JSONException e) {
e.printStackTrace();
}
//利用Unity提供的发送消息接口给Unity传递参数,
//GameObject是Unity中物体的名称,
//CSharpFunc是C#中方法的名称,
//需要将带有CSharpFunc这个方法的C#脚本挂在GameObject这个物体上
UnityPlayer.UnitySendMessage("GameObject","CSharpFunc",pms.toString());
}
在C#中 添加被调用的方法,如果传递过来的是多个参数,需要将参数一一解析出来使用 。
//被调用
public void CSharpFunc(string data)
{
JsonData json = JsonMapper.ToObject(data);
string num = (string)json["num"];
string name = (string)json["FuncName"];
Debug.Log(string.Format("被Java方法调用了,Java方法名字是:{0},参数是{1}",name,num));
}
相关文章
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250
unity调用普通java类_Unity中C#和Java的相互调用实例代码相关推荐
- android 调用java类_Android中在WebView里实现Javascript调用Java类的方法
搜索热词 为了方便网页和Android应用的交互,Android系统提供了WebView中JavaScript网页脚本调用Java类方法的机制.只要调用addJavascriptInterface方法 ...
- java 遍历request_java 遍历request中的所有表单数据的实例代码
java 遍历request中的所有表单数据的实例代码 实例如下: Enumeration rnames=request.getParameterNames(); for (Enumeration e ...
- Java类Demo中存在_Java中的数据类型转换
先来看一个题: Java类Demo中存在方法func0.func1.func2.func3和func4,请问该方法中,哪些是不合法的定义?( ) public class Demo{ float fu ...
- java jar 目录_将Java类路径中的所有jar包括在一个目录中
有没有一种方法可以将所有的jar文件包含在类路径的目录中? 我正在尝试java -classpath lib / *.jar :. my.package.Program,它无法找到当然在这些罐子里的类 ...
- JAVA 类声明中关键字public的作用
JAVA类声明中关键字public起到什么作用呢?如下Hello类的声明,按着字面的意思理解是:Hello类是公共的,要求Hello类与 类文件名必须保持一致,并且一个java文件中只能有一个publ ...
- Java类Demo中存在方法func1、func2、func3和func4,请问该方法中,哪些是不合法的定义?( )
Java类Demo中存在方法func1.func2.func3和func4,请问该方法中,哪些是不合法的定义?( ) public class Demo{float func1(){int i=1;r ...
- python文件调用python文件_自己写的python文件如何相互调用
自己写的python文件如何相互调用?Python中的模块库十分常用,对于常用的模块可以自己动手自定义,但是如何进行调用呢? 模块相互调用 同级目录调用时的两种方法import module prin ...
- JAVA类思维_面向对象思维 Java中的类和对象及其应用
一.面向过程与面向对象 面向过程: 从事务执行者的角度思考问题,我该干什么 重点在过程----事务流程 面向对象: 从事务的指挥者角度思考问题,我应该找谁干什么 重点在对象 面向对象的优点: 1. ...
- 一个java类可以有_一个.java文件中可以有几个同级类?
1.在一个.java文件中可以有多个同级类(和public一样的位置,注意不是内部类).其修饰符只可以public/abstract/final/和无修饰符,不能是其他的protected/priva ...
最新文章
- 数颜色(洛谷-P1903)
- Android ——SoundPool播放音频
- Apache Spark开发介绍
- Objective-C 【从文件中读写字符串(直接读写/通过NSURL读写)】
- java技术栈_七天串起java技术栈-开篇
- (转)微信扫码登录网页实现原理
- 蓝桥杯 ADV-97 算法提高 十进制数转八进制数
- 遥感影像辐射校正,地形校正等
- 【深度学习之Tensorflow2.0】函数matmul和函数multiply的用法
- usb为什么计算机无法识别网络,电脑的usb网卡无法识别怎么办
- Fantastic Four: 具有恶意安全的诚实大多数四方安全计算
- python小模块----cookie
- iphone系统架构以及各层提供的主要服务
- 把QQ聊天记录插入数据库中
- (SQL)修改表结构[字段类型]、表字段长度,
- 使用Java解压zip格式压缩包
- karma测试html,常用的前端自动化测试工具介绍 —— Karma(二)
- 统计 | 统计功效 | R语言
- H3C路由器如何配置Telnet服务?
- pytorch项目怎么跑?
热门文章
- 杭州(含嘉兴,绍兴,金华,湖州,义乌)Uber优步司机奖励政策(1月18日~1月24日)...
- SQL语句对象化,先看示例代码.
- 剑指 Offer 05. 替换空格 简单
- 人工智能和神经科学之间有什么关系?诺奖得主这样说……
- file的open()和read()
- xrdp安装包linux,linux xrdp0.6 安装
- android自动创建桌面,Android应用启动后自动创建桌面快捷方式的实现方法
- python常用函数表-python-列表常用函数
- Spring中 @Autowired注解与@Resource注解的区别
- 06_一对一和一对多