6

所以我看到unity支持c#、JS和Boo。

我可以学习其中的一个,但我想制作一个“编译器”或类似的东西,让我编写 ruby​​ 代码并输出 JS 代码或制作一个可由 Unity 编译器读取的层。

这还有可能吗。我愿意在这方面投入很多时间,并且有相当多的经验。

4

4 回答 4

3

If your question is actually "how do I compile Ruby to JavaScript" then that's easier to answer:

Opal: Ruby to JavaScript compiler

However, you're going to be mucher better off learning one of the supported languages. It's very hard to debug "your" code when what's running is a paraphrasing of the code in another language.

于 2014-01-25T12:52:26.690 回答
2

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

于 2014-08-29T14:07:12.923 回答
1

我推荐“播放我的代码”网站。可以“将 Ruby 编译为 JavaScript”,在浏览器中操作 Ruby 游戏,就像 JS 一样。

http://www.playmycode.com/build/edit/6172

于 2014-10-12T06:00:36.990 回答
1

Unity 3d 不使用 Javascript,我认为统一公司将其称为 javascript 只是出于营销目的,Unity 使用基于 Boo 的 UnityScript 实现,您可以在此处查看源代码https://github.com/bamboo/unityscript

所以,即使你有一些编译器 ruby​​ 到 javascript,比如 Opal,你仍然会把它编译到 JavaScript 而不是 UnityScript,它们之间有很大的不同:

  1. Javascript 是一种基于原型的语言,而 UnityScript 是一种基于类的语言。
  2. UnityScript 比 Javascript 更像是 JScript.NET。

在http://wiki.unity3d.com/index.php?title=UnityScript_versus_JavaScript查看更多信息

我认为集成 ruby​​ 语言而不是编写完整的编译器的简单方法是集成 IronRuby,这是一个用 C# 编写的 Ruby 实现,它将为 CLR 生成 Unity 可以读取的字节码。

我用 python 做了一个类似的项目,它使用 IronPython ( https://github.com/cesardeazevedo/Unity3D-Python-Editor ),它仍然非常有限,所以你仍然必须从 C# 调用 python 代码,但它可以工作并且有如果您想使用简单的 python 命令创建数以千计的游戏对象,可以帮助您进行开发的解释器。

于 2015-09-06T20:11:34.290 回答