【发布时间】:2014-01-25 12:47:41
【问题描述】:
所以我看到unity已经支持c#、JS和Boo了。
我可以学习其中的一个,但我想制作一个“编译器”或类似的东西,让我可以编写 ruby 代码并输出 JS 代码或制作一个可由 Unity 编译器读取的层。
这还有可能吗。我愿意在这方面投入大量时间并拥有相当多的经验。
【问题讨论】:
所以我看到unity已经支持c#、JS和Boo了。
我可以学习其中的一个,但我想制作一个“编译器”或类似的东西,让我可以编写 ruby 代码并输出 JS 代码或制作一个可由 Unity 编译器读取的层。
这还有可能吗。我愿意在这方面投入大量时间并拥有相当多的经验。
【问题讨论】:
如果您的问题实际上是“我如何将 Ruby 编译为 JavaScript”,那么这更容易回答:
Opal: Ruby to JavaScript compiler
但是,学习一种受支持的语言会更好。当运行的是另一种语言的代码释义时,很难调试“您的”代码。
【讨论】:
我对 C# 不是很熟悉,但如果它与 C 类似,则很有可能您可以创建从 Ruby 到 Unity 的绑定并直接使用它。很可能你甚至可以建立某种社区。这比尝试自动重构语言要好得多。
【讨论】:
我推荐“播放我的代码”网站。 可以“将Ruby编译成JavaScript”,在浏览器中操作Ruby Game,就像JS一样。
【讨论】:
Unity 3d 不使用 Javascript,我认为 unity 公司将其称为 javascript 只是出于营销目的,Unity 使用基于 Boo 的 UnityScript 实现,您可以在此处查看源代码https://github.com/bamboo/unityscript
所以,即使你有一些编译器 ruby 到 javascript,例如 Opal,你仍然会将它编译到 JavaScript 而不是 UnityScript,它们之间存在很大差异:
在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 命令创建数千个游戏对象。
【讨论】: