使用Ruby编程Unity游戏

6

我看到Unity支持使用C#、JS和Boo编程语言。

虽然我可以学习其中一种编程语言,但是我想开发一个类似编译器的工具,让我能够编写Ruby代码并输出JS代码,或者生成一层可以被Unity编译器读取的代码。

这是否可行呢?我愿意花费大量时间来研究,并且已经有不少经验了。

4个回答

3
如果您的问题实际上是“我如何将Ruby编译成JavaScript”,那么回答会更容易: Opal:Ruby到JavaScript编译器。但是,学习受支持的语言会更好。 当运行的是另一种语言中代码的释义时,很难调试“您自己”的代码。请参考Opal: Ruby to JavaScript compiler

1
Opal是一个非常好的选择。我们目前在一些应用程序中使用它来替换JS,取得了很大的成功,而且令人惊讶的是它易于调试,更易读。 - ylluminate

2

我对C#并不是很熟悉,但如果它与C类似,那么你完全可以创建从Ruby到Unity的绑定,并直接使用它。很可能你甚至可以建立某种社区。这比尝试自动重构语言要好得多。


1

1
Unity 3d不使用Javascript,我认为Unity公司只是为了营销目的而将其称为Javascript。Unity使用基于Boo的实现UnityScript,您可以在此处查看源代码https://github.com/bamboo/unityscript
因此,即使您获得了一些编译器(如Opal)将Ruby编译为JavaScript,您仍将编译为JavaScript而不是UnityScript,它们之间有很大的区别:
  1. Javascript是基于原型的语言,而UnityScript是基于类的。
  2. UnityScript更像JScript.NET而不是Javascript。
详情请参见http://wiki.unity3d.com/index.php?title=UnityScript_versus_JavaScript
我认为将Ruby语言集成到Unity中的简单方法是集成IronRuby,这是一个用C#编写的Ruby实现,它将为CLR生成字节码,Unity可以读取。
我曾使用Python做过类似的项目,采用了IronPython(https://github.com/cesardeazevedo/Unity3D-Python-Editor),它仍然有很多限制,比如你仍需要从C#调用Python代码,但它能够工作,并且有一个解释器可以帮助你进行开发,如果你想用简单的Python命令创建数千个游戏对象。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接