您的位置:首页 > 移动开发 > Unity3D

Unity学习笔记5 unity的js转c#

2014-05-01 16:35 357 查看
上一篇已经说过,unity的js是一种变种的js,和真正的js还是有区别的,所以有时候会给人一种有点不伦不类的感觉……如果对于完全没有编程基础的人来说,建议一开始就直接学c#吧,不要浪费时间去学js。但是有个很蛋疼的问题摆在我们的面前。那就是有很多unity的教程是用js写的,比如我看过的超级玛丽系列,很喜欢(为此我花了一个多星期的时间去啃下了一本js基础的书,有了一点点js的基础。)但是对于初学者来说,一次性学两种语言很不现实啊。如果可以把js转成c#或者把c#转成js那不就好了?把c#转成js是不太可能的,因为c#要比js复杂,而且绝对比unity版的js复杂,除非c#写得比较简单,那还是有可能的。但是反过来说,要把js转成c#还是可能的。但是转换过程可能会出现一些变量的报错什么的,但这个并不是什么大问题,因为我们的VS的智能程度要比mono高出很多,利用它的报错功能,我们完全可以将js转成c#之后,再利用报错和调试,把js脚本修改成我们喜欢的c#。

首先上一个在线的转换网站,是个外网,有可能比较难访问,而且我也不知道这个外网是不是会一直经营下去,所以这个不是终极解决方案,先看看吧:

http://www.m2h.nl/files/js_to_c.php

顺便截个图给大家看看界面:



好了,接着我们来看看离线的,我已经把东西上传到自己的资源里面了:http://download.csdn.net/detail/sinolzeng/7280207

接着我再转载一个教程:原链接http://game.ceeger.com/forum/read.php?tid=4781;fpage=3

我怕有些链接以后会打不开。所以如果我觉得内容比较重要的话,我会把内容复制到我的博客里面。(CSDN社区这么强大,应该不至于挂掉吧?)至于unity圣典社区的一个帖子,还能维持多长时间就比较不好说了,下面是昵称为野猪的大大写的教程,感谢大大:

野猪已经好久没有写东西与大家分享了。最近遇到了些事情,曾一度的让野猪先生失去信心分享他的学习过程与学习的经验分享。在这里,野猪只想说一句,我们要对那些帮助我们的人给予感激感恩之心,不对他感激也就罢了,就不要在背后说人家的坏话了。毕竟他曾是你学习道路上的朋友。嘿嘿。小小的唠叨下,知情的朋友都替野猪感觉到不公平撒!罢了。继续野猪先生的分享之路吧,将知识分享到底。最近朋友分享给我了很多插件,感觉很有用,在工作之余就进行了测试和动手做下小笔记吧!

在本教程中呢,野猪先生不会在为大家截图来讲解插件的具体使用了,但是不会改变野猪先生一贯的作风,野猪还是会给大家尽量的讲解他自己对这些插件的使用的心得和一些经验分享。
首先呢,我们先讲解一下JS To C#这个插件,你可以去商店里购买。这个对于那些熟悉c#语法,但是对js不太熟悉的朋友,或者是习惯了使用C#编码的人,但是其他插件里面使用的是js编写的,或者是别人分享的一个不错的脚本,你想用到自己的项目中,但是你使用的是c#,这个时候你想把JS的改成C#的脚本。他就排上用场了。当然你也可以手动的敲写成c#的,但是一般来说会浪费很多时间。利用这个工具我们就可以快速的转换JS的脚本成为C#的脚本。当然查看这个转换插件你也可以知道,作者说他并不确保每次的转换都是有效的。也就是说,会有些地方需要你手动进行修改。目前我测试的版本,他的转换方法都是转换为void类型的。但是脚本中可能有的带有返回值,这个时候,你需要手动的进行修改为你需要的。还有地方需要注意的就是你需要手动给方法名加上public。因为他的转换默认是不带有这个访问修饰符的。那就意味着类里面的方法就是私有的了。这个是C#语法的限制了。稍微提示下,C#语法中不手动写上public或者其他访问修饰符,默认情况下是private。所以找个地方会让很多不熟悉c#语法的朋友陷入一个小困境。下面,我们继续讲解如何使用找个插件。方法其实很简单。大体如下:

1.    新建一个空的project,导入我们使用的这个插件JS To C#。在项目可以看到如图的内容:



然后选择我们需要转换的脚本文件,单击菜单中的Tools-下面的转换js到c#代码。这样转换就已经完成。我们需要做的就是删掉原有的js脚本。这样是因为项目中不能有重名的脚本文件。
2.在完成1之后,打开脚本可能会发现很多错误。这个时候,我们需要做的就是把这些错误,在编辑器中给修改掉。在u3d的输出面板中不再有红色的错误提示的时候。项目已经转换并修改成功了!window下的朋友,建议使用微软的vs作为u3d的编辑器,因为他有很多不错的优点例如他优秀的智能提示,C#语法的智能验证等等,但是在u3d的使用中需要注意的一些地方可以查看u3d的官方文档说明,或者是看圣典上由野猪先生翻译的用户手册部分的Visual
Studio C#继承。地址:http://game.ceeger.com/Manual/VisualStudioIntegration.html

看完上面的这些你可以具体的转换个脚本看看效果了!
下面野猪先生要讲解的就是easytouch这个插件了。这个插件的优点很多,他可以使用户很快的上手去处理ios,android,ipad等设备上的手指滑动,单击,双击等的操作。这个插件里面的很多操作都是可以扩展的。具体的要看自己的需要进行修改了。由于野猪先生一直都是在使用C#,所以看到这个插件之后有点不爽,没有找到c#版的。只好自己手动的敲写了一遍,主要是因为野猪先生要熟悉他里面的一些机制和一些对手势的判断方法等等吧!用了一上午的时间弄完了这个插件的c#版本,运行之后发现,效果没有出来,后来才发现,是在脚本的某个角落里,野猪写错了一行参数的单词拼写。有点无语。呵呵。但是还好解决了!

下面给大家一个快速的方法去把js版本的插件脚本,修改成为C#版本的。
利用前面野猪先生提到的JS To C#插件,选择easytouch里面的脚本转换为C#,方法参考上文。转换之后,野猪发现很多错误啊。不过这些错误修改起来就很快解决的。因为咱们有用一个不错的编辑器微软的vs studio。利用u3d输出面板提示的错误结合vs,三下五除二很快的就解决掉了转换后的哪些错误。但是野猪有点喜欢整洁美感。利用vs的缩进功能进行脚本的排版,ok!下面没有错误了,开始我们的动手学习之旅吧。

在easytouch插件1.0中,只有核心的4个脚本文件,一个是处理所有处理信息的脚本叫做easytouch,这个脚本要给主摄像机,或者是场景中一个空的物体上。另一个是EasyTouchInput可以使我们这些穷b的人使用鼠标按钮和键盘的ctrl,alt键的组合来模拟手指滑动,触摸单击,双击,长按等的操作。这个很给力。接着就是EasyTouchTemplate脚本,这个里面给我们提供了很多参考的事件方法模板。我们在项目需要参考使用的模板。最后一个就是EsayTouchS***ct,里面枚举了,我们经常使用的手势。根据这些手势,我们进行相应的操作。

基本上这个easytouch 1.0核心的脚本就是这几个。他是基于sendmessge()方法进行对象之间消息传递的。这个算是他的通讯机制啦!
下面简单的提下,如何使用他的例子。这个也是野猪先生经常使用的方式。
首先,查看例子的效果。对这个插件可以提供的功能可以实现的效果。
接着,看看各个部分的大体关系。

再就是删除例子中的脚本,自己动手来搞一遍。嘿嘿,差不多ok!
先上手了,再去花些时间研究他,深深的爱上他,成为自己的一部分。是专属你个人的。

本教程,只是野猪先生的一点理解。如有任何疑问,可以和野猪先生一块交流,共同进步。

好啦,这篇博客就整理到这里。希望大家喜欢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  csdn博客 unity c# js 转换