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:
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 wurdennode_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
odersmooth_camera
)Extension
: gibt an, für welche Sprache die Vorlage gelten soll (es solltegd
für GDScript odercs
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
// 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:
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
// meta-description: Base template for Node with default Godot cycle methods
using _BINDINGS_NAMESPACE_;
using System;
public partial class _CLASS_ : _BASE_
{
// 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(double delta)
{
}
}
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 |
---|---|
|
Der Name des Godot-Namespaces (nur in C# verwendet). |
|
Der Name der neuen Klasse (wird nur in C# verwendet). |
|
Der Basistyp, von dem ein neues Skript erbt. |
|
Platzhalter für Einrückung. Die genaue Art und Anzahl der Leerzeichen, die für die Einrückung verwendet werden, wird durch die Einstellungen |
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