Unity如何使用Java类(理论篇)

7 篇文章 0 订阅
5 篇文章 0 订阅

开发环境

Window 7

Unity3D 3.4

MB525 defy  Android 2.2.1

     

       羽化的第五篇博客,这次送上较晚了点,原因是手机出了点问题,又忘记拷项目了,所以星期二才开始写,这个还是要坚持的,一月至少一篇,无论是记事还是技术分享。话说最近手机突然不给力,USB口出了点问题,由于是水货,拿去MOTO服务中心去修,着白眼不说还被坑一顿,幸好手机突然崛起了,还算幸运吧~ ~ 最近开始了魔兽台服征程,原因有两个,一是为了菲尔、月光、女孩那些原来一起奋战的好友吧,虽然现实中互不认识,但在魔兽里面在一起真的十分快乐,真希望他们在现实生活也能开心快乐,二是为了完成对朋友的诺言,羽化说过一定会把狼人打到满级的,无论如何不能忘记自己的承诺。选在8.3号开始,可能是巧合,也可能是宿命吧~ ~你一定要过得比我好啊。。。发最后句牢骚,希望二姨爹能挺过这段时间早日康复。

       这次希望看的人看看第一部分再考虑看不看下面的部分。

      

本次学习:

1.为什么叫理论篇

2.ikvm环境搭建和使用方法

3.Unity实现Java类

 

1.为什么叫理论篇

       理论篇也就意味着这个方法不能再实际中使用,但确实是个可行的方法。羽化是做Android游戏开发的,有时候在想如果Unity能使用写好的Java类,无论是存储还是Android控件使用,都会把一切变得简单很多,所以羽化不断在找类似的方法,这是羽化在外国网站看到一个留言上面写的方法,于是自己尝试了一下,发现还真的可行,Java类顺利的运行了,可是却遇到了问题,无法打包,无论是生成任何格式,都无法解析dll文件,所以只能抱恨暂时停止了这方面的研究,如果谁看过此文,能成功导出项目,希望能指点下羽化,无论是留言还是邮箱(675517707@qq.com)都行。

 

2.ikvm环境搭建和使用方法

        ikvm不知道到底出不出名,反正羽化原来没听说过。。。百度上说“IKVM.NET的是开源的基于.NET CLR 的Java虚拟机。 ” 相信很多人看到这里知道这软件到底是怎么作用了。

        1)首先我们先搭建使用环境,在http://www.ikvm.net/上下载最新的ikvm,包括使用方法都可以在这网站上找到,这做的很好很方便。

        2) 为了方便使用,我们可将ikvmbin目录加入到系统path.现在我们将使用IKVM就像使用JVM一样,并不需要配置。

        3 )然后将我们要使用的类ExampleLibrary打成.jar包,这里羽化使用的是Eclipse,对着想导出的类选择Export后选择Java里面的JAR包就行了。

public class ExampleLibrary
{
	private int n = 0;

	public ExampleLibrary()
	{
	}

	public String HelloWorld(int num)
	{
		n += num; 
		String s = num + "";
		return s;
	}
}

 

        4) 随后在cmd命令控制台里面先输入jar包所在地址,比如在C盘根目录就 cd\  ,然后使用ikvm的指令 ikvmc ExampleLibrary.jar,ExampleLibrary.dll就生成了

        5 )把这个dll和ikvm目录bin下面的IKVM.OpenJDK.Core.dll 和 IKVM.Runtime.dll一起复制到Unity项目里面

 

3.Unity实现Java类

        上面的准备工作都做好以后,就写一个C#脚本来实现它

using UnityEngine;

public class JavaHelloWorldScript : MonoBehaviour
{
	public int num = 100;
	ExampleLibrary exampleLibrary = new ExampleLibrary();
	
	void OnGUI () 
	{
		string text = exampleLibrary.HelloWorld(num);
		GUILayout.Label(text);
	}
}

       名字随便取的,看起是不是很简单,就是在GUI上面显示我们输入的100后返回的内容,下面我们把这个脚本绑定在摄像机上,运行就可以看到左上角的数字在不停跳了,这样我们的Java类功能实现了。

       就如上面所说,这一种写法没有办法用在实际中,原因可能是ikvm本身的缺陷AWT和Swing还未有功能。 但是羽化相信,Unity能使用Java类的日子在不断接近,总有一天能用的上。如果谁有好的方法欢迎讨论~ ~

 

下集预告:

       Unity射线应用 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值