Unity如何使⽤Java类(理论篇)
开发环境
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⽂件,所以只能抱恨暂时停⽌了这⽅⾯的研究,如果谁看过此⽂,能成功导出项⽬,希望能指点下⽻化,⽆论是留⾔还是邮箱()都⾏。
2.ikvm环境搭建和使⽤⽅法
ikvm不知道到底出不出名,反正⽻化原来没听说过。。。百度上说“IKVM.NET的是开源的基于.NET CLR 的Java虚拟机。 ” 相信很多⼈看到这⾥知道这软件到底是怎么作⽤了。
1)⾸先我们先搭建使⽤环境,在上下载最新的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类功能实现了。
jdk怎么使用就如上⾯所说,这⼀种写法没有办法⽤在实际中,原因可能是ikvm本⾝的缺陷AWT和Swing还未有功能。 但是⽻化相信,Unity能使⽤Java类的⽇⼦在不断接近,总有⼀天能⽤的上。如果谁有好的⽅法欢迎讨论~ ~
下集预告:
Unity射线应⽤

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。