我希望将不同的编程语言绑定到戈多游戏引擎。是否有关于这个主题的教学文件或视频?例如,这个项目是如何完成的:戈多锈病。如果我能学到基础知识,我就能成功地在另一种语言中工作。谢谢。
发布于 2022-03-19 07:33:24
在这个答案中,我向您展示了在Godot3.x中添加语言支持的不同方法(Godot4.0和GDExtension (它取代了GDNative,希望这意味着更少的自定义构建)的情况会有所不同),我还提到了这些方法所支持的一些语言。然而,这并不是一份详尽无遗的语言清单。
首先,戈多对GDScript和戈多的VisualScript (以及戈多的阴影语言和视觉对口语言(如果这对你来说算得上)提供了正式的内置支持。
有几种使用C++的方法
在web中,戈多可以通过JavaScript类与JavaScript
进行接口。但是,这种方法不允许将JavaScript脚本添加到Node
,等等。
还有一些语言只能添加到自定义的Godot构建中,这是目前对C#的官方支持。
还有其他非官方定制构建,为语言提供语言绑定,如Lua、Kotlin、TypeScript和JavaScript (这一次允许您编写脚本)。
如果您需要添加一个运行时,您可能会这样做。
一些语言利用戈多的官方Mono支持这一事实来支持C#。例如,通过这种方式可以使用F#和Clojure。
他们从添加一个C#项目开始,然后修改它,以便它使用另一种语言。如果您的语言已经编译成.NET,这是可行的。
可以将其他一些语言添加为通过PluginScript
实现GDNative类的插件。这是Python和Lua (再次)的例子,您可以从资产库中获得这些信息。
这是向戈多添加语言支持的最友好的方式,但它仅限于使用PluginScript
__所能做的事情。
增编:Gil,上述Lua绑定的作者,有一个关于它的实现的文章系列(英文和葡萄牙语):godot pluginscript/附加/文章/。这可能是迄今为止最全面的教程。
其他语言是通过利用GDNative来添加的(它们基本上模仿了您对C++所做的操作)。这是Nim、Rust、D、Haskell、GoE 254
、E 155
SwiftE 256
…的情况。
这就是戈多铁锈的工作原理:让本机库使用铁锈和戈多锈创建并添加它们,就像它们是用C++制作的。对于任何已经具备创建本机库的方法的语言来说,这是一个很好的选择。
最后,还有一种方法可以添加对语言的支持:将该语言的转换程序添加到GDScript中,它可以通过一个可以用GDScript编写的加载项来实现自动化。这就是Lisp的情况。
最后一种方法主要用于特定于领域的语言。
发布于 2022-03-19 02:52:33
https://stackoverflow.com/questions/71534987
复制相似问题