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.

使用引擎編譯配置編輯器

Godot 內建了大量功能。雖然相當便利,但也意味著二進位檔體積可能較大,特別是對只使用少部分功能的專案而言。

為了縮小二進位體積,可以編譯自訂的匯出範本並停用特定功能;詳情見 最佳化建置檔案大小。然而決定要停用哪些功能可能相當繁瑣。引擎編譯配置編輯器提供一個介面,讓你更輕鬆地檢視與管理這些功能,並能偵測專案目前實際使用到的功能。

透過 Project > Tools > Engine Compilation Configuration Editor,你可以為專案建立並管理建置設定檔。

接下來你有兩種方式可以進行:

  • 瀏覽清單並手動取消勾選不需要的功能。

  • 使用 Detect from Project 按鈕可自動偵測專案目前使用的功能,並停用未使用的功能。請注意,這會覆蓋現有的功能清單,因此如果你曾手動取消勾選某些項目,它們的狀態會依據專案是否實際使用該功能而被重設。

開啟引擎編譯設定編輯器

開啟引擎編譯設定編輯器

按下 Detect from Project 後會開始執行專案偵測步驟。所需時間視專案規模可能從數秒到數分鐘不等。偵測完成後,你會看到更新過的功能清單,其中部分功能已被停用:

使用功能偵測後更新的功能清單(以 3D 橫向平台範例為例)

使用功能偵測後更新的功能清單(以 3D 橫向平台範例為例)

警告

在此對話框中取消勾選功能不會在匯出時直接減少二進位大小。實際移除二進位中的功能只能在編譯時進行,因此你仍需使用指定的建置設定檔來編譯自訂匯出樣板,才能實際受惠於引擎編譯設定編輯器。

你可以點擊頂端的 Save As 來儲存建置設定檔。建置設定檔可以儲存到任意位置,但建議將其放在專案資料夾中並加入版本控制,以便日後需要時能回溯。此外也能透過版本控制來追蹤建置設定檔的變更。

建置設定檔是一個 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 開單,並附上最小重現專案。

也參考

你還可以透過傳遞其他可縮小二進位大小的選項來進一步減少體積。更多資訊請參考 最佳化建置檔案大小