Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
命令行教程
一些开发人员喜欢广泛使用命令行。Godot 被设计为对他们友好,因此本文介绍了完全通过命令行工作的方法。由于引擎几乎不依赖外部库,初始化时间非常快,非常适合这种工作流程。
备注
在 Windows 和 Linux 上,你可以通过指定其相对或绝对路径在终端中运行 Godot 可执行文件。
在 macOS 上,由于 Godot 包含在 .app 包中(这是一个文件夹,而不是文件),因此运行过程有所不同。要从 macOS 的终端运行 Godot 可执行文件,你必须 cd 到 Godot 应用程序包所在的文件夹,然后运行 Godot.app/Contents/MacOS/Godot,并在后面加上相关命令行参数。如果你把应用包从 Godot 改名为其他名称,则需相应地编辑这个命令行。
命令行参考
图例说明
在编辑器构建版本、调试导出模板和发布导出模板中可用。
仅在编辑器构建版本和调试导出模板中可用。
仅在编辑器构建版本和在编译时设置了
disable_path_overrides=false的导出模板中可用。仅在编辑器构建版本中可用。
请注意,未知的命令行参数没有任何作用。当使用给定构建类型不存在的命令行参数时,引擎不会发出警告。
常规选项
命令 |
描述 |
|
|
|
|
|
|
|
|
|
|
运行选项
命令 |
描述 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
显示选项
命令 |
描述 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
调试选项
命令 |
描述 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
独立工具
命令 |
描述 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
路径
建议将 Godot 编辑器的二进制文件放在 PATH 环境变量中,这样就可以通过在任何地方键入 godot 来轻松地执行。在 Linux 上,可以将 Godot 二进制文件放在 /usr/local/bin 中,请确保文件名为 godot(注意大小写)。
要在 Windows 或 macOS 上轻松实现这一目标,可以使用 Scoop(在 Windows 上)或 Homebrew(在 macOS 上)安装 Godot。这将自动在 PATH 中提供已安装的 Godot 副本:
# Add "Extras" bucket
scoop bucket add extras
# Standard editor:
scoop install godot
# Editor with C# support (will be available as `godot-mono` in `PATH`):
scoop install godot-mono
# Standard editor:
brew install godot
# Editor with C# support (will be available as `godot-mono` in `PATH`):
brew install godot-mono
设置项目路径
根据 Godot 二进制文件的位置以及当前的工作目录,你可能需要设置项目的路径,才能使以下任何命令正常工作。
在运行编辑器时,可以通过将项目的 project.godot 文件路径作为第一个参数来完成,如下所示:
godot path_to_your_project/project.godot [other] [commands] [and] [args]
对于所有的命令,这可以通过使用 --path 参数来完成:
godot --path path_to_your_project [other] [commands] [and] [args]
例如,用于导出游戏的完整命令(如下所述)可能如下所示:
godot --headless --path path_to_your_project --export-release my_export_preset_name game.exe
当从你的项目的子目录启动时,使用 --upwards 参数使 Godot 可以通过递归搜索父目录来自动地找到 project.godot 文件。
举个例子,当你的工作目录在相同的路径下时,运行一个嵌套在子目录中的场景(如下所述)的命令可能看起来像这样:
godot --upwards nested_scene.tscn
创建项目
要通过命令行创建项目,可以将 shell 导航至所需位置并创建 project.godot 文件。
mkdir newgame
cd newgame
touch project.godot
现在可以使用 Godot 打开该项目。
运行编辑器
通过使用 -e 参数启动 Godot 来运行编辑器。必须在项目目录内,或按照前文所述的方法设置项目路径,才能完成此操作,否则该命令将被忽略并显示项目管理器。
godot -e
在传入 project.godot 文件的完整路径时,参数 -e 可以被省略。
如果已经创建并保存了场景,则可以稍后以该场景作为参数运行相同的代码来对其进行编辑。
godot -e scene.tscn
删除场景
Godot 对你的文件系统非常友好,不会创建额外的元数据文件。你可以使用 rm 来删除场景文件,但是在这之前需要确定该场景未被引用,否则再打开该项目时会抛出错误。
rm scene.tscn
运行游戏
要运行游戏,只需按前述方法在项目目录中或带项目路径执行 Godot 即可。
godot
请注意,传入 project.godot 文件将总是运行编辑器,而不会运行游戏。
当需要测试特定场景时,将该场景传递给命令行。
godot scene.tscn
调试
捕获命令行中的错误可能是一项艰巨的任务,因为它们滚动得很快。为此,使用 -d 来启动命令行调试器。它适用于运行游戏或单个场景。
godot -d
godot -d scene.tscn
导出
也支持从命令行导出项目。这对持续集成设置特别有用。
备注
在没有 GPU 访问权限的平台(例如持续集成)上,需要使用 --headless 命令行参数。在具有 GPU 访问权限的平台上,--headless 可防止在项目导出时生成窗口。
# `godot` must be a Godot editor binary, not an export template.
# Also, export templates must be installed for the editor
# (or a valid custom export template must be defined in the export preset).
godot --headless --export-release "Linux/X11" /var/builds/project
godot --headless --export-release Android /var/builds/project.apk
预设名称必须与项目的 export_presets.cfg 文件中定义的导出预设名称一致。如果预设名称包含空格或特殊字符(如“Windows Desktop”),必须用引号引起来。
要导出游戏的调试版本,请使用 --export-debug 开关而不是 --export-release。它们的参数和用法相同。
要仅导出 PCK 文件,请使用 --export-pack 选项,后跟预设名称和输出路径以及文件扩展名,而不是 --export-release 或 --export-debug。输出路径扩展名决定了包的格式,PCK 或 ZIP。
警告
当指定相对路径作为 --export-release、--export-debug 或 --export-pack 的路径时,该路径将相对于包含 project.godot 文件的目录,而不是相对于当前工作目录。
运行脚本
可以从命令行运行 .gd 脚本。此功能在大型项目中特别有用,例如,用于资产的批量转换或自定义导入/导出。
该脚本必须继承自 SceneTree 或 MainLoop。
下面是一个 sayhello.gd 示例,展示了它的用法:
#!/usr/bin/env -S godot -s
extends SceneTree
func _init():
print("Hello!")
quit()
以及如何运行它:
# Prints "Hello!" to standard output.
godot -s sayhello.gd
如果路径中不存在 project.godot,则假定当前路径为当前工作目录(除非指定了 --path)。
脚本路径将被解释为相对于项目的资源路径,这里是 res://sayhello.gd。你也可以使用绝对文件系统路径,这在脚本位于项目目录之外时很有用。
上面 sayhello.gd 的第一行通常被称为 shebang。如果 Godot 二进制文件在你的 PATH 中,名为 godot,则它允许你在现代 Linux 发行版以及 macOS 中按以下方式运行脚本:
# Mark script as executable.
chmod +x sayhello.gd
# Prints "Hello!" to standard output.
./sayhello.gd
如果上述方法在你当前版本的 Linux 或 macOS 中不起作用,你可以随时让 shebang 直接从它所在的位置运行 Godot:
#!/usr/bin/godot -s