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.
Checking the stable version of the documentation...
Criando modelos de script
O Godot fornece uma maneira de usar modelos de scripts, como visto em Script Create Dialog enquanto se cria um novo script:
Um conjunto de modelos de script nativos é fornecido com o editor, mas também é possível criar novos e defini-los como padrão, tanto por projeto quanto no escopo do editor.
Os modelos (templates) estão vinculados a um tipo específico de nó, portanto, quando você criar um script, verá apenas os modelos correspondentes àquele nó específico ou a um de seus tipos pai. Por exemplo, se estiver criando um script para um CharacterBody3D, verá apenas modelos definidos para CharacterBody3Ds, Node3Ds ou Nodes.
Localizando os modelos
Existem dois lugares onde os modelos pode ser manipulados.
Modelos definidos pelo editor
Estes estão disponíveis para todos os projetos. A localização destes modelos é determinada por cada SO em particular:
Windows:
%APPDATA%\Godot\script_templates\Linux:
$HOME/.config/godot/script_templates/macOS:
$HOME/Library/Application Support/Godot/script_templates/
Se você estiver obtendo o Godot de algum outro lugar que não o site oficial, como o Steam, a pasta pode estar em um local diferente. Você pode encontrá-la usando o editor do Godot. Vá em Editor > Open Editor Data/Settings Folder e isso abrirá uma pasta no seu navegador de arquivos; dentro dessa pasta estará a pasta script_templates.
Modelos definidos pelo projeto
O caminho padrão para buscar modelos é o diretório res://script_templates/. O caminho pode ser alterado configurando a configuração do projeto Editor > Script > Templates Search Path, tanto via código quanto pelo editor.
Se nenhum diretório script_templates for encontrado em um projeto, ele é simplesmente ignorado.
Organização e nomenclatura de modelos
Os modelos definidos tanto pelo editor quanto pelo projeto são organizados da seguinte forma:
template_path/node_type/file.extension
onde:
template_pathé um dos 2 locais discutidos nas duas seções anteriores.node_typeé o nó ao qual ele se aplicará (por exemplo, Node, ou CharacterBody3D). Isso é case-sensitive (diferencia maiúsculas de minúsculas). Se um script não estiver na pasta correta donode_type, ele não será detectado.fileis the custom name you can choose for the template (for example,platformer_movementorsmooth_camera).extensionindica a qual linguagem o modelo se aplicará (deve sergdpara GDScript oucspara C#).
Por exemplo:
script_templates/Node/smooth_camera.gdscript_templates/CharacterBody3D/platformer_movement.gd
Comportamento padrão e como sobrescrevê-lo
Por padrão:
o nome do modelo é igual ao nome do arquivo (menos a extensão, formatado para ficar bonito)
a descrição está vazia
a indentação de espaço é definida como 4
o modelo não será definido como o padrão para o nó fornecido
É possível personalizar esse comportamento adicionando cabeçalhos de metadados no início do seu arquivo, assim:
# 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
Nesse caso, o nome será definido como "Platformer movement", com a descrição personalizada fornecida, e ele será definido como o modelo padrão para o nó no diretório em que foi salvo.
Este é um exemplo de utilização de modelos personalizados no nível do editor e do projeto:
Nota
Os modelos de script têm a mesma extensão que os arquivos de script normais. Isto pode levar a uma questão de um analisador de scripts tratando esses modelos como scripts reais dentro de um projeto. Para evitar isto, certifique-se de ignorar o diretório que os contém, criando um arquivo .gdignore vazio. O diretório não será mais visível em todo o sistema de arquivos do projeto, mas os modelos podem ser modificados por um editor de texto externo a qualquer momento.
Dica
Por padrão, todo arquivo C# dentro do diretório do projeto é incluído na compilação. Os modelos de script devem ser excluídos manualmente do projeto C# para evitar erros de compilação. Veja Excluir arquivos da compilação na documentação da Microsoft.
É possível criar modelos no nível do editor que tenham o mesmo nível dos modelos específicos do projeto, e também que tenham o mesmo nome de um modelo embutido; todos serão mostrados na janela de diálogo de novo script.
Modelo padrão
Para sobrescrever o modelo padrão, crie um modelo personalizado no nível do editor ou do projeto dentro de um diretório Node (or um tipo mais específico, se apenas um subtipo deve ser sobrescrito) e inicie o arquivo com o cabeçalho meta-default: true.
Apenas um modelo pode ser definido como padrão ao mesmo tempo para o mesmo tipo de nó.
Os modelos Default para Nodes básicos, tanto para GDScript quanto para C#, são apresentados aqui para que você possa utilizá-los como base na criação de outros modelos:
# 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)
{
}
}
O editor do Godot fornece um conjunto de modelos embutidos úteis específicos para nós, como o basic_movement tanto para CharacterBody2D quanto para CharacterBody3D, e plugin para EditorPlugin.
Lista de placeholders de modelo
O seguinte descreve a lista completa de placeholders de modelo integrados que estão embutidos atualmente.
Placeholders base
Placeholder |
Descrição |
|---|---|
|
O nome do namespace Godot (usado apenas em C#). |
|
O nome da nova classe. |
|
O nome da nova classe como |
|
O tipo básico de onde um novo script herda. |
|
Marcador de indentação. O tipo exato e o número de caracteres de espaço usados para indentação são determinados pelas configurações |
Placeholders de tipo
Costumava haver, no Godot 3.x, placeholders para dicas de tipo (type hints) do GDScript que seriam substituídos sempre que um modelo fosse usado para criar um novo script, tais como: %INT_TYPE%, %STRING_TYPE%, %FLOAT_TYPE% ou %VOID_RETURN%.
Os placeholders não funcionam mais no Godot 4.x, mas se a configuração text_editor/completion/add_type_hints das EditorSettings estiver desativada, as dicas de tipo para parâmetros e tipos de retorno serão automaticamente removidas para alguns tipos base:
intStringArray[String]floatvoid:=será transformado em=