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.

Erstellen von Skript-Vorlagen

Godot bietet eine Möglichkeit, Skriptvorlagen zu verwenden, wie im Skript erstellen-Dialog beim Erstellen eines neuen Skripts dargestellt ist:

../../_images/script_create_dialog_templates.webp

Der Editor enthält eine Reihe Built-in-Skriptvorlagen, aber es ist auch möglich, neue Vorlagen zu erstellen und sie als Default einzustellen, sowohl pro Projekt als auch im Editorbereich.

Vorlagen sind mit einem bestimmten Node-Typ verknüpft. Wenn Sie also ein Skript erstellen, werden nur die Vorlagen angezeigt, die diesem bestimmten Node oder einem seiner Parent-Typen entsprechen. Wenn Sie zum Beispiel ein Skript für einen CharacterBody3D erstellen, sehen Sie nur Vorlagen, die für CharacterBody3Ds, Node3Ds oder Nodes definiert sind.

Auffinden der Vorlagen

Es gibt zwei Stellen, an denen Vorlagen verwaltet werden können.

Editor-definierte Vorlagen

Diese sind global in jedem Projekt verfügbar. Der Speicherort dieser Vorlagen wird für jedes Betriebssystem festgelegt:

  • Windows: %APPDATA%\Godot\script_templates\

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

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

Wenn Sie Godot von einer anderen als der offiziellen Website beziehen, z.B. von Steam, befindet sich der Ordner möglicherweise an einem anderen Ort. Sie können ihn mit dem Godot-Editor finden. Gehen Sie auf Editor > Editor-Daten öffnen/Einstellungs-Ordner und es wird ein Ordner in Ihrem Dateibrowser geöffnet, in dem sich der Ordner script_templates befindet.

Projektdefinierte Vorlagen

The default path to search for templates is the res://script_templates/ directory. The path can be changed by configuring the project setting Editor > Script > Templates Search Path, both via code and the editor.

Wenn in einem Projekt kein script_templates-Verzeichnis gefunden wird, wird es einfach ignoriert.

Organisation und Benennung von Vorlagen

Sowohl editor- als auch projektdefinierte Vorlagen sind auf folgende Weise organisiert:

template_path/node_type/file.extension

wobei:

  • template_path is one of the 2 locations discussed in the previous two sections.

  • node_type is the node it will apply to (for example, Node, or CharacterBody3D), This is case-sensitive. If a script isn't in the proper node_type folder, it won't be detected.

  • file is the custom name you can chose for the template (for example, platformer_movement or smooth_camera).

  • extension indicates which language the template will apply to (it should be gd for GDScript or cs for C#).

Zum Beispiel:

  • template_scripts/Node/smooth_camera.gd

  • template_scripts/CharacterBody3D/platformer_movement.gd

Defaultverhalten und dessen Überschreibung

Standardmäßig:

  • der Name der Vorlage ist derselbe wie der Dateiname (ohne die Erweiterung und lesbarer gemacht)

  • die Beschreibung ist leer

  • die Einrückungstiefe ist auf 4 gesetzt

  • die Vorlage wird nicht als Default für den angegebenen Node festgelegt

Es ist möglich, dieses Verhalten anzupassen, indem Sie Meta-Header am Anfang Ihrer Datei hinzufügen, etwa so:

# meta-name: Platformer movement
# meta-description: Predefined movement for classical platformers
# meta-default: true
# meta-space-indent: 4

In diesem Fall wird der Name auf "Platformer movement" gesetzt, mit der angegebenen benutzerdefinierten Beschreibung, und es wird als Defaultvorlage für den Node festgelegt, in dessen Verzeichnis er gespeichert wurde.

Dies ist ein Beispiel für die Verwendung von benutzerdefinierten Vorlagen auf Editor- und Projektebene:

../../_images/script_create_dialog_custom_templates.webp

Bemerkung

Die Skriptvorlagen haben die gleiche Dateiendung wie die regulären Skriptdateien. Dies kann dazu führen, dass ein Skriptparser diese Vorlagen als tatsächliche Skripte in einem Projekt behandelt. Um dies zu vermeiden, stellen Sie sicher, dass das Verzeichnis, das sie enthält, ignoriert wird, indem Sie eine leere .gdignore-Datei erstellen. Das Verzeichnis ist dann im Dateisystem des Projekts nicht mehr sichtbar, die Vorlagen können jedoch jederzeit mit einem externen Texteditor bearbeitet werden.

Tipp

Standardmäßig wird jede C#-Datei innerhalb des Projektverzeichnisses in die Kompilierung einbezogen. Skriptvorlagen müssen manuell aus dem C#-Projekt ausgeschlossen werden, um Build-Fehler zu vermeiden. Siehe Dateien vom Build ausschließen in der Microsoft-Dokumentation.

Es ist möglich, Vorlagen auf Editorebene zu erstellen, die auf der gleichen Ebene liegen wie projektspezifische Vorlagen und auch den gleichen Namen wie eine Built-in-Vorlage haben; alle werden im neuen Skriptdialog angezeigt.

Default-Vorlage

Um die Default-Vorlage zu überschreiben, erstellen Sie eine eigene Vorlage auf Editor- oder Projektebene innerhalb eines Node-Verzeichnisses (oder eines spezifischeren Typs, wenn nur ein Subtyp überschrieben werden soll) und beginnen die Datei mit dem meta-default: true-Header.

Für denselben Node-Typ kann nur eine Vorlage gleichzeitig als Default festgelegt werden.

Die Default-Vorlagen für Basis-Nodes, sowohl für GDScript als auch für C#, werden hier gezeigt, damit Sie diese als Basis für die Erstellung anderer Vorlagen verwenden können:

# meta-description: Base template for Node with default Godot cycle methods

extends _BASE_


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


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
    pass

Der Godot-Editor bietet eine Reihe nützlicher Built-in-Node-spezifischer Vorlagen, wie z.B. basic_movement für CharacterBody2D und CharacterBody3D und plugin für EditorPlugin.

Liste der Vorlagen-Platzhalter

Im Folgenden wird die vollständige Liste der derzeit implementierten Platzhalter für Vorlagen beschrieben.

Basis-Platzhalter

Platzhalter

Beschreibung

_BINDINGS_NAMESPACE_

Der Name des Godot-Namespaces (nur in C# verwendet).

_CLASS_

Der Name der neuen Klasse.

_BASE_

Der Basistyp, von dem ein neues Skript erbt.

_TS_

Platzhalter für Einrückung. Die genaue Art und Anzahl der Leerzeichen, die für die Einrückung verwendet werden, wird durch die Einstellungen text_editor/indent/type und text_editor/indent/size in der EditorSettings bestimmt. Kann durch den meta-space-indent-Header der Vorlage überschrieben werden.

Typ-Platzhalter

In Godot 3.x gab es Platzhalter für GDScript-Type-Hints, die immer dann ersetzt wurden, wenn eine Vorlage zur Erstellung eines neuen Skripts verwendet wurde, wie z.B.: %INT_TYPE%, %STRING_TYPE%, %FLOAT_TYPE% oder %VOID_RETURN%.

Diese Platzhalter funktionieren nicht mehr für Godot 4.x, aber wenn die Einstellung text_editor/completion/add_type_hints aus EditorSettings deaktiviert ist, werden Type-Hints für Parameter und Rückgabetypen automatisch für einige Basistypen entfernt:

  • int

  • String

  • Array[String]

  • float

  • void

  • := wird in = umgewandelt