使用引擎编译配置编辑器

Godot 内置了大量功能。虽然这很方便,但也意味着其二进制文件体积比实际所需更大,特别是对于仅使用其功能集中一小部分的项目而言。

为了帮助减小二进制文件体积,可以编译自定义导出模板,并禁用某些功能。这一点在 为尺寸优化构建 中有详细说明。然而,确定哪些功能需要禁用可能是一项繁琐的工作。引擎编译配置编辑器旨在通过提供一个直观的界面来轻松查看和管理这些功能,同时还能自动检测当前项目中正在使用哪些功能,从而解决这一问题。

通过 Project > Tools > Engine Compilation Configuration Editor,你可以为你的 Godot 项目创建和管理构建配置文件。

从现在开始,您有两种选择:

  • 查看列表,并手动取消勾选您不需要的功能。

  • 使用 Detect from Project 按钮,自动识别项目中当前正在使用的功能,并禁用未使用的功能。请注意,此操作将覆盖现有的功能列表,因此如果您曾手动取消勾选过某些项目,它们的状态将根据项目是否实际使用该功能而被重置。

打开引擎编译配置编辑器

打开引擎编译配置编辑器

点击 Detect from Project 后,项目检测步骤将开始运行。根据项目大小,此过程可能需要几秒到几分钟不等。检测完成后,您将看到更新后的功能列表,其中部分功能已被禁用:

使用功能检测后更新的功能列表(以 3D 平台游戏演示项目为例)

使用功能检测后更新的功能列表(以 3D 平台游戏演示项目为例)

警告

在此对话框中取消勾选功能并不会在导出时直接减小二进制文件体积。由于只有在编译时才能真正从二进制文件中移除功能,因此您仍需使用指定的构建配置文件编译自定义导出模板,才能真正受益于引擎编译配置编辑器。

现在,你可以通过点击顶部的 另存为 按钮来保存构建配置文件。该配置文件可以保存在任意位置,但建议将其保存在项目文件夹内的某个位置,并加入版本控制,以便日后需要时能够回溯。这样还可以通过版本控制跟踪构建配置文件的变更。

构建配置文件是一个 JSON 文件(扩展名为 .gdbuild),在上述示例中执行检测后,其内容如下所示:

{
    "disabled_build_options": {
        "disable_navigation_3d": true,
        "disable_xr": true,
        "module_godot_physics_3d_enabled": false,
        "module_msdfgen_enabled": false,
        "module_openxr_enabled": false
    },
    "disabled_classes": [
        "AESContext",
        ...
        "ZIPReader"
    ],
    "type": "build_profile"
}

compiling 导出模板时,可将此文件作为 SCons 选项传入:

scons target=template_release build_profile=/path/to/profile.gdbuild

构建系统将使用该配置文件来禁用未使用的类,从而减小二进制文件的体积。

限制

Detect from Project 功能依赖于读取项目的场景和脚本。在以下情况下,它将无法检测到已使用的功能:

  • 在运行时通过程序动态创建并执行的 GDScript 中所使用的功能。

  • expressions 中使用的功能。

  • GDExtensions 中使用的功能,除非该语言绑定支持定义所使用的类,且扩展实际使用了此功能。详情请参见 GH-104129

  • external PCKs loaded at runtime 中使用的功能。

  • 可能存在某些边界情况。如有疑问,请在 GitHub 上 提交一个 issue,并附上一个最小可复现项目。

参见

你可以通过传入其他可减小二进制文件体积的选项来进一步缩减尺寸。更多信息请参见 为尺寸优化构建