使用引擎編譯配置編輯器

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 開單,並附上最小重現專案。

也參考

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