- 版本:2.2.0
- GitHub:
- NPM: https://npmjs.net.cn/package/godot-rust-helper
- 下载
- 昨日: 0
- 上周: 1
- 上月: 22
Godot Rust Helper
一个简单的 CLI 工具,可以帮助您为 Godot 项目创建和更新 Rust 模块。
注意: 这是 godot-rust-helper 新 2.x 版本的文档。如果您在寻找 1.x 及以下版本,可以在这里找到它 here。
安装
由于 godot-rust-helper 是一个旨在随时使用的 CLI 工具,因此您应该全局安装它,如下所示
$ npm install -g godot-rust-helper
步骤 1:创建项目的库
在 Godot 中创建的每个游戏,您都需要创建一个新的库。该库本身是一个 cargo 库,它包含您的游戏中使用的所有模块。
要创建项目的库,导航到您想要存储模块的位置(在您的 Godot 项目目录外部),并使用 new
命令
$ godot-rust-helper new <library_name> <path_to_godot_project> [options]
让我们通过一些示例详细说明参数和选项。
参数
- library_name 包含您的 Rust 模块的库的名称。建议库的名称与您的游戏名称相同或相似。请注意,库是通过
cargo new
创建的,因此您应该遵守 cargo 项目命名标准。 - path_to_godot_project 这是模块所属的 Godot 项目的根目录路径。
选项
--targets
Godot 中的本地模块可以针对多个平台,godot-rust-helper 需要提前知道您计划使用哪些平台的目标模块,目前可用的选项是:windows、linux 和 osx。例如,如果您针对 Windows 和 osx,您需要将 cargo 设置为构建 dll 和 dylib 文件,并传递--targets=windows,osx
作为目标。如果没有传递目标,则默认为--targets=windows
。--extensions
如果传递此标志,则会将 扩展 依赖项添加到库中。扩展是一个新的、不断增长的功能,请关注它们将添加什么新功能,并查看扩展存储库中的文档,以了解您是否可以在模块中使用它。
示例
仅针对 Windows 构建创建默认库
$ godot-rust-helper new breakout_modules ~/Documents/projects/breakout
为 Windows、Linux 和 osx 构建创建库
$ godot-rust-helper new breakout-modules ~/Documents/projects/breakout windows,linux,osx
注意: src/lib.rs
文件完全由 godot-rust-helper 管理,不应修改。对文件的任何修改都会导致模块无法正常工作,或者当创建/销毁模块时将被覆盖。可以通过 godot-rust-helper mod
添加自定义修改到文件中,如所示 here(即将推出)。
步骤 2:创建模块
现在您已创建库,您可以在新创建的文件夹中查看配置文件。此配置文件包含 Godot 项目目录的路径以及从 new
命令传递的目标。此配置文件不应手动修改,因为 godot-rust-helper 严重依赖于它。
从该目录,我们现在可以使用 create 命令开始创建模块,如下所示
$ godot-rust-helper create <class_name>
- name 传递给此命令的名称应该是模块的类名。类名必须以大写字母开头。示例包括 'Player'、'Princess'、'Mob'、'HUD' 等。
这个操作会为模块创建一个 src/<name>.rs
文件,并在 src/lib.rs
文件中添加一个条目。如果您将此脚本原样附加到节点并运行游戏,则“hello, world”将会打印到 Godot 控制台。
注意:此命令必须从库目录运行。
示例
$ godot-rust-helper create Player
$ godot-rust-helper create HUD
步骤 3:构建模块
创建您的模块后(或者您可以使用默认内容来尝试),您就可以使用以下命令运行构建:
$ godot-rust-helper build
这个操作首先运行 cargo build
,然后将构建文件移动到 Godot 项目目录。
注意:此命令必须从库目录运行。
注意:第一次运行此命令可能需要一些时间,因为它需要下载必要的依赖项,之后的每次构建都会快得多。
构建命令还支持 --watch
选项,该选项会监视模块的 src 目录中的更改并自动重新构建。
示例
运行构建命令
$ godot-rust-helper build
运行构建命令并监视库中任何模块的更改。
$ godot-rust-helper build --watch
步骤 4:在 Godot 中使用模块
要将模块用于您的 Godot 项目,最后一步是创建脚本并将其附加到需要使用它的节点。
创建模块并运行构建后,您可以像这样将脚本附加到节点:
- 选择要添加脚本的节点,然后在检查器中转到脚本下拉菜单并选择添加新脚本。
- 在“附加节点脚本”对话框中,设置以下选项
- 语言:本地脚本
- 类名:传递给
godot-rust-helper create
的名称,这是您创建的 Rust 模块的类名。
- 将脚本名称更改为与类名匹配,并将脚本保存到 rust-modules 文件夹
- 单击新创建的 .gdns 文件(或者在上面的步骤之后,它应该在检查器中已经激活)并在库下拉菜单中选择“加载”,然后选择 rust-modules 文件夹中的“library_name.gdnlib”文件。此库名称与传递给
godot-rust-helper new
的名称相同。 - 单击新创建的 Node.gdns(或您在上面指定的任何名称)。
现在,如果您运行游戏,您将看到脚本的功能正在运行!
注意:如果您更新 Rust 模块,您不需要在 Godot 中更新相应的 .gdnlib 文件,它将自动更新。
其他命令
以下命令是情景命令,但不是基本设置所必需的。
destroy
从库中删除 Rust 模块。您仍然需要从 Godot 中的节点删除脚本引用,因为如果尝试运行游戏,它将引发错误,因为脚本已不存在。
$ godot-rust-helper destroy <class_name>
- class_name 要删除的类的名称。这应该是使用
godot-rust-helper create
创建时使用的相同名称。
示例
$ godot-rust-helper destroy Player
$ godot-rust-helper destroy HUD
mod
即将推出!
import
将 Rust 模块从另一个库导入到当前库。
$ godot-rust-helper import <path_to_library> <class_name>
- path_to_library 包含要导入模块的库的路径。
- class_name 要导入的模块的类名。这应该是创建模块时传递给
godot-rust-helper create
的相同名称。
示例
$ godot-rust-helper import ../kinematic_character Player
$ godot-rust-helper import ../kinematic_character Princess
测试
$ npm run test
许可证
MIT