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 並沒有限制專案架構與如何使用檔案系統,在學習使用 Godot 時,如何組織檔案便很有挑戰性。本教學建議的工作流程是一個不錯的開始。我們也會介紹如何配合 Godot 使用版本控制。

組織

Godot 本質基於場景,並按照檔案系統原本的樣子來使用,不使用後設資料或素材資料庫。

與其他遊戲引擎不同,許多資源都包含在場景內,因此在檔案系統中的檔案數量也就比較少。

因此,常見的做法是儘量將素材放得靠近場景。隨著專案成長,這樣也比較容易管理。

例如,我們通常會將基本素材如 Sprite 圖片、3D 模型網格、材質與音樂…等放在單一資料夾內。接著可以使用各個不同的資料夾來儲存各個做好的關卡會使用到的素材。

/project.godot
/docs/.gdignore  # See "Ignoring specific folders" below
/docs/learning.html
/models/town/house/house.dae
/models/town/house/window.png
/models/town/house/door.png
/characters/player/cubio.dae
/characters/player/cubio.png
/characters/enemies/goblin/goblin.dae
/characters/enemies/goblin/goblin.png
/characters/npcs/suzanne/suzanne.dae
/characters/npcs/suzanne/suzanne.png
/levels/riverdale/riverdale.scn

風格指南

為了在各專案間保持一貫性,我們建議依照下列方針:

  • 資料夾與檔案名稱使用 snake_case (除了 C# 腳本例外)。這樣一來也同時解決了從 Windows 上匯出專案後可能會出現的區分大小寫功能。C# 腳本為本規則的例外,因為 C# 腳本的準則為以類別名稱命名檔名,而類別名稱應該為 PascalCase。

  • 節點名稱應為 PascalCase ,該命名方式與內建節點一樣。

  • 一般來說,就算不是編輯器外掛,也儘量將第三方資源放在最上層的 addons/ 資料夾中。這樣可以更容易追蹤哪些檔案是第三方。但本規則也有一些例外,如,若在角色上使用第三方遊戲素材,則放到跟角色場景與腳本相同的資料夾內比較合理。

匯入

Godot 3.0 版以前,匯入流程會從專案外部讀取檔案。雖然對於大型專案來說很好用,但對許多開發者來說卻難以組織。

Because of this, assets are now transparently imported from within the project folder. See 匯入流程 for more details on how importing works in Godot.

忽略特定資料夾

若要防止 Godot 從特定資料夾內匯入檔案,可於該資料夾內建立一個空白檔案 .gdignore (必須以 . 開頭)。對於初始專案來說能有效提高速度。

備註

To create a file whose name starts with a dot on Windows, place a dot at both the beginning and end of the filename (.gdignore.). Windows will automatically remove the trailing dot when you confirm the name.

或者,您可以使用文字編輯器,例如 Notepad++,或者在命令提示字元中使用以下指令: type nul > .gdignore

忽略資料夾後,於該資料夾內的資源將不再可用 load()preload() 方法載入。

請注意 .gdignore 檔的內容會被忽略,因此該檔應當為空。它不像 .gitignore 檔一樣支援模式配對。

區分大小寫

Windows 與近期的 macOS 版本預設使用不區分大小寫的檔案系統,而 Linux 發行版則預設使用有區分大小寫的檔案系統。由於 Godot 的 PCK 虛擬檔案系統是區分大小寫的,對於匯出專案來說會導致問題。要避免大小寫問題,建議保持專案內所有檔案都使用 snake_case (並主要使用小寫文字)。

備註

當風格指南另有規定時,便可不遵守此規則 (如 C# 風格指南)。但,應維持一致性以避免犯錯。

在 Windows 10 上,為了進一步避免與大小寫敏感相關的錯誤,你也可以將專案資料夾設為區分大小寫。啟用 Windows Subsystem for Linux 功能後,請在 PowerShell 視窗中執行以下指令:

# To enable case-sensitivity:
fsutil file setcasesensitiveinfo <path to project folder> enable

# To disable case-sensitivity:
fsutil file setcasesensitiveinfo <path to project folder> disable

若尚未啟用 Windows Subsystem for Linux,請於 以系統管理員身分執行 的 PowerShell 視窗中輸入以下指令,並在提示時重新開機:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux