Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

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 keine script_templates erkannt werden, erstellt Godot automatisch einen Default-Satz von Built-in-Vorlagen, sodass diese Logik verwendet werden kann um die Default-Vorlagen zurückzusetzen, falls Sie sie versehentlich überschrieben haben.

Projektdefinierte Vorlagen

Der Default-Pfad für die Suche nach Vorlagen ist das Verzeichnis res://script_templates/. Der Pfad kann geändert werden, indem die Einstellung editor/script_templates_search_path in den Projekteinstellungen sowohl über Code als auch über den Editor konfiguriert wird.

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 einer der 2 Orte ist, die in den beiden vorherigen Abschnitten besprochen wurden

  • node_type der Node ist, auf den es angewendet wird (zum Beispiel Node, oder CharacterBody3D)

  • file der benutzerdefinierte Name ist, den Sie für die Vorlage wählen können (zum Beispiel: platformer_movement oder smooth_camera)

  • Extension: gibt an, für welche Sprache die Vorlage gelten soll (es sollte gd für GDScript oder cs für C# sein)

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 Knotentyp 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 (wird nur in C# verwendet).

_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