建立腳本樣板

Godot 中能使用腳本樣板,該功能可以在建立新腳本的 [腳本建立視窗] 中看到:

../../_images/script_create_dialog_templates.png

預設有提供一系列的預設腳本樣板,但也可以修改現有樣板或建立新的樣板。設定樣板時可以只為單一專案設定或為編輯器設定。

放置樣板

有兩個地方可以管理樣板。

編輯器中定義的樣板

這些樣板可以在所有專案中使用。樣板的位置根據各個作業系統而不同:

  • Windows:%APPDATA%\Godot\script_templates\

  • Linux: $HOME/.config/godot/script_templates/

  • macOS:$HOME/Library/Application Support/Godot/script_templates/

若未偵測到 script_templates,則 Godot 會自動建立一系列預設的內建樣板。所以可以藉此方法來在不小心覆蓋掉預設樣板時重設。

各專案定義的樣板

搜尋樣板的預設路徑是 res://script_templates/ 目錄。該路徑可以通過程式碼或編輯器在 專案設定 中的 editor/script_templates_search_path 設定更改。

若在專案中未找到 script_templates 資料夾,則會直接忽略。

語言支援與覆寫行為

依據特定語言是否有實作產生腳本為樣板的功能,也可以建立依據樣板檔副檔名來讓語言能識別的樣板。GDScript 與 C# 的副檔名則必須為 gdcs

備註

腳本樣板與一般腳本檔的副檔名相同。這可能會讓腳本解析器把專案中的腳本當成是實際腳本。為了避免這種情況,請確保在包含樣板腳本的資料夾內建立一個 .gdignore 檔案。該資料夾將不再顯示於專案的檔案系統中,但樣板依然可以使用外部文字編輯器來開啟。

當腳本檔名相同時,則會優先使用各專案特定的樣板而非內建編輯器樣板。

預設樣板

Default 預設樣板會依各語言自動產生,且無法設定或覆寫。但這些樣板可以用來當作建立其他樣板的基底。

extends %BASE%


# Declare member variables here. Examples:
# var a%INT_TYPE% = 2
# var b%STRING_TYPE% = "text"


# Called when the node enters the scene tree for the first time.
func _ready()%VOID_RETURN%:
    pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta%FLOAT_TYPE%)%VOID_RETURN%:
#   pass
using Godot;
using System;

public class %CLASS% : %BASE%
{
    // Declare member variables here. Examples:
    // private int a = 2;
    // private string b = "text";

    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {

    }

//  // Called every frame. 'delta' is the elapsed time since the previous frame.
//  public override void _Process(float delta)
//  {
//
//  }
}

樣板預留位置列表

下表列出了所有目前有實作的內建樣板預留位置。

基礎預留位置

預留位置

說明

%CLASS%

新類別的名稱 (僅於 C# 中使用)。

%BASE%

新腳本所繼承的基礎型別。

%TS%

縮排預留位置。依據 編輯器設定text_editor/indent/typetext_editor/indent/size 判斷的正確縮排,會依據設定來使用正確的形式以及正確數量的空白字元。

型別預留位置

這些預留位置只與靜態型別 GDScript 相關。這些預留位置實際上要放在哪裡是由 編輯器設定 中的 text_editor/completion/add_type_hints 設定所判斷的。

預留位置

數值

%INT_TYPE%

: int

%STRING_TYPE%

: String

%FLOAT_TYPE%

: float

%VOID_RETURN%

-> void