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.

Creazione di modelli di script

Godot fornisce un modo per utilizzare i modelli di script come mostrato nella Finestra di dialogo Crea uno script durante la creazione di un nuovo script:

../../_images/script_create_dialog_templates.webp

Un insieme di modelli di script integrati viene fornito con l'editor, ma è anche possibile crearne di nuovi e impostarli come predefiniti, sia per il singolo progetto sia per tutto l'editor.

I modelli sono collegati a un tipo di nodo specifico, quindi alla creazione uno script appariranno solo i modelli corrispondenti a quel particolare nodo o a uno dei suoi tipi padre. Ad esempio, se si sta creando uno script per un CharacterBody3D, appariranno solo i modelli definiti per CharacterBody3D, Node3D o Node.

Individuazione dei modelli

Esistono due posti in cui è possibile gestire i modelli.

Modelli definiti per l'editor

Questi sono disponibili globalmente per qualsiasi progetto. La posizione di questi modelli è determinata per ciascun sistema operativo:

  • Windows: %APPDATA%\Godot\script_templates\

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

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

Se si sta scaricando Godot da un sito diverso dal sito ufficiale, come Steam, la cartella potrebbe trovarsi in una posizione diversa. È possibile trovarla grazie all'editor di Godot. Andare su Editor > Apri cartella dati/impostazioni editor e si aprirà una cartella nel file browser, al cui interno si trova la cartella script_templates.

Modelli definiti per il progetto

Il percorso predefinito per la ricerca dei modelli è la cartella res://script_templates/. È possibile cambiare il percorso configurando l'impostazione del progetto Editor > Script > Percorso di ricerca dei modelli, sia tramite codice sia tramite l'editor.

Se nessuna cartella script_templates viene trovata all'interno di un progetto, è ignorata.

Organizzazione e denominazione dei modelli

I modelli definiti sia dall'editor sia dal progetto sono organizzati nel modo seguente:

template_path/node_type/file.extension

dove:

  • template_path è una delle 2 posizioni discusse nelle due sezioni precedenti.

  • node_type è il nodo a cui verrà applicato (ad esempio, Node, o CharacterBody3D). Questo distingue tra maiuscole e minuscole. Se uno script non si trova nella cartella node_type corretta, non sarà rilevato.

  • file è il nome personalizzato che si può scegliere per il modello (ad esempio, platformer_movement o smooth_camera).

  • extension indica a quale linguaggio verrà applicato il modello (dovrebbe essere gd per GDScript o cs per C#).

Per esempio:

  • script_templates/Node/smooth_camera.gd

  • script_templates/CharacterBody3D/platformer_movement.gd

Comportamento predefinito e sovrascriverlo

Come predefinito:

  • il nome del modello è lo stesso del nome del file (meno l'estensione, abbellito)

  • la descrizione è vuota

  • L'indentazione degli spazi è impostata su 4

  • il modello non sarà impostato come predefinito per il nodo specificato

È possibile personalizzare questo comportamento aggiungendo meta-intestazioni all'inizio del file, così:

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

In questo caso, il nome sarà impostato su "Platformer movement", con la descrizione personalizzata fornita, e sarà impostato come modello predefinito per il nodo nella cui cartella è stato salvato.

Questo è un esempio di utilizzo di modelli personalizzati a livello di editor e di progetto:

../../_images/script_create_dialog_custom_templates.webp

Nota

I modelli di script hanno la stessa estensione dei normali file di script. Questo potrebbe portare a un problema con l'analisi degli script, che potrebbe interpretare tali modelli come script veri e propri dentro un progetto. Per evitarlo, assicurarsi di ignorare la cartella che li contiene creando un file .gdignore vuoto. La cartella non sarà più visibile nel filesystem del progetto, ma i modelli si potranno modificare sempre da un editor di testo esterno.

Suggerimento

Per impostazione predefinita, tutti i file C# all'interno della cartella del progetto sono inclusi nella compilazione. I modelli di script si devono escludere manualmente dal progetto C# per evitare errori di compilazione. Consultare la sezione Exclude files from the build nella documentazione di Microsoft.

È possibile creare modelli a livello di editor che hanno lo stesso livello dei modelli specifici del progetto e anche lo stesso nome di uno integrato; tutti questi modelli appariranno nella finestra di dialogo di un nuovo script.

Modello predefinito

Per sovrascrivere il modello predefinito, creare un modello personalizzato a livello di editor o di progetto all'interno di una cartella Node (o un tipo più specifico, se si desidera sovrascrivere solo un sottotipo) e cominciare il file con l'intestazione meta-default: true.

È possibile impostare come predefinito un solo modello alla volta per lo stesso tipo di nodo.

Di seguito sono mostrati i modelli Default per i nodi basilari, sia per GDScript sia per C#, in modo da poterli utilizzare come base per creare altri modelli:

# 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

L'editor Godot fornisce una serie di utili modelli integrati specifici a certi nodi, come basic_movement per CharacterBody2D e CharacterBody3D e plugin per EditorPlugin.

Elenco dei segnaposto di modelli

Di seguito è descritto l'elenco completo dei segnaposto dei modelli integrati attualmente implementati.

Segnaposto di base

Segnaposto

Descrizione

_BINDINGS_NAMESPACE_

Il nome dello spazio dei nomi di Godot (utilizzato solo in C#).

_CLASS_

Il nome della nuova classe.

_CLASS_SNAKE_CASE_

Il nome della nuova classe in snake_case (utilizzato solo in GDScript).

_BASE_

Il tipo di base da cui eredita un nuovo script.

_TS_

Segnaposto per l'indentazione. Il tipo e il numero esatti di spazi vuoti utilizzati per l'indentazione sono determinati dalle impostazioni text_editor/indent/type e text_editor/indent/size rispettivamente in EditorSettings. È possibile sovrascriverli dall'intestazione meta-space-indent nel modello.

Segnaposto di tipo

In Godot 3.x erano presenti dei segnaposto per i suggerimenti di tipo di GDScript che venivano sostituiti ogni volta che si utilizza un modello per creare un nuovo script, come: %INT_TYPE%, %STRING_TYPE%, %FLOAT_TYPE% o %VOID_RETURN%.

I segnaposto non funzionano più per Godot 4.x, ma se l'impostazione text_editor/completion/add_type_hints da EditorSettings è disabilitata, i suggerimenti sui tipi per i parametri e i tipi restituiti verranno rimossi automaticamente per alcuni tipi di base:

  • int

  • String

  • Array[String]

  • float

  • void

  • := sarà trasformato in =