我想将不同的编程语言绑定到 Godot 游戏引擎。有关于这个主题的指导文件或视频吗?例如,这个项目是如何完成的:godot-rust。如果我能学习基础知识,我就能成功地用不同的语言工作。谢谢。
在这个答案中,我向您展示了在 Godot 3.x 中添加语言支持的不同方法(Godot 4.0 和 GDExtension 的情况会有所不同 - 它取代了 GDNative,希望意味着更少的自定义构建),并且我提到了一些受支持的语言通过这些方法中的每一种。然而,这并不是详尽的语言列表。
\n首先,Godot 具有对GDScript和 Godot 的VisualScript(以及 Godot 的着色语言及其视觉对应语言,如果这些对您有用的话)的官方内置支持。
\n有几种使用C++的方法:
\n您可以使用它来创建 GDNative 脚本(基本上是本机调用的包装器,允许您将它们用作 Godot 中的脚本)。
\n或者您可以创建模块(它们是您可以在自定义 Godot 构建中添加的静态库)。
\n由于 Godot 源代码是 C++ 语言,因此如果您要进行自定义构建,则不必限制自己制作模块。
\n在 Web 构建中,Godot 可以通过类与JavaScript交互JavaScript。但是,这种方法不允许您将 JavaScript 脚本添加到Nodes 等。
还有一些语言只能在 Godot 的自定义版本中添加,目前是对C#的官方支持。
\n还有其他非官方自定义构建为Lua、Kotlin、TypeScript和JavaScript等语言提供语言绑定(这次允许您制作脚本)。
\n如果您需要添加运行时,您可能会这样做。
\n有些语言利用 Godot 拥有官方 Mono 支持的事实来支持 C#。例如,您可以通过这种方式使用F#和Clojure。
\n他们首先添加一个 C# 项目,然后对其进行修改,使其使用另一种语言。如果您的语言已编译为 .NET,则这是可行的。
\n一些其他语言可以添加为插件,PluginScript通过 GDNative 实现该类。这是Python和Lua的情况(再次),您可以从资源库中获取它们。
这是向 Godot 添加语言支持的最用户友好的方式,但它仅限于您可以使用PluginScript.
附录:Gil Barbosa Reis,上述 Lua 绑定的作者,在存储库中塞满了有关其实现的系列文章(英语和葡萄牙语):godot-lua-pluginscript/extras/articles/。这可能是迄今为止最全面的教程。
\n其他语言是通过利用 GDNative 来添加的(它们基本上模仿了您使用 C++ 所做的事情)。这是Nim、Rust、D、Haskell、Go、Swift \xe2\x80\xa6的情况
\n这就是 godot-rust 的工作原理:使用 rust 制作本机库,然后 godot-rust 创建并添加它们,就像它们是用 C++ 制作的一样。对于任何已经有办法创建本机库的语言来说,这是一个不错的选择。
\n最后,还有另一种方法来添加对某种语言的支持:从该语言到 GDScript 的转译器,可以使用也可以用 GDScript 编写的插件来实现自动化。Lisp就是这种情况。
\n最后一种方法主要用于特定于领域的语言。
\n