Создание сценарных шаблонов
Godot предоставляет способ использования сценарных шаблонов, как показано в Script Create Dialog, при создании нового скрипта:
В редакторе предусмотрен набор встроенных шаблонов скриптов, но также можно создавать новые и устанавливать их по умолчанию как для проекта, так и для редактора.
Шаблоны привязаны к определённому типу узла, поэтому при создании скрипта вы увидите только шаблоны, соответствующие этому конкретному узлу или одному из его родительских типов. Например, если вы создаёте скрипт для CharacterBody3D, вы увидите только шаблоны, определённые для CharacterBody3D, Node3D или Node.
Расположение шаблонов
Есть два места, где можно управлять шаблонами.
Шаблоны, определенные редактором
Они доступны глобально в рамках любого проекта. Расположение этих шаблонов определяется для каждой ОС:
Windows:
%APPDATA%\Godot\script_templates\Linux:
$HOME/.config/godot/script_templates/macOS:
$HOME/Library/Application Support/Godot/script_templates/
Если вы скачиваете Godot не с официального сайта, например, из Steam, папка может находиться в другом месте. Найти её можно с помощью редактора Godot. Выберите Editor > Open Editor Data/Settings Folder, и в файловом менеджере откроется папка, внутри которой находится папка script_templates.
Шаблоны, определенные проектом
Путь поиска шаблонов по умолчанию — каталог res://script_templates/. Этот путь можно изменить, настроив параметр проекта Editor > Script > Templates Search Path как через код, так и через редактор.
Если в проекте не найден каталог script_templates, он просто игнорируется.
Организация и наименование шаблонов
Шаблоны, определяемые как редактором, так и проектом, организованы следующим образом:
template_path/node_type/file.extension
где:
template_path— одно из двух расположений, обсуждавшихся в предыдущих двух разделах.node_type— это узел, к которому он будет применяться (например, Node или CharacterBody3D). Регистр учитывается. Если скрипт не находится в папке с соответствующимnode_type, он не будет обнаружен.file— это пользовательское имя, которое вы можете выбрать для шаблона (например,platformer_movementилиsmooth_camera).extensionуказывает, к какому языку будет применяться шаблон (это должно бытьgdдля GDScript илиcsдля C#).
Например:
script_templates/Node/smooth_camera.gdscript_templates/CharacterBody3D/platformer_movement.gd
Поведение по умолчанию и его переопределение
По умолчанию:
Имя шаблона совпадает с именем файла (без расширения, в более удобном формате)
описание пустое
отступ пробела установлен на 4
шаблон не будет установлен как шаблон по умолчанию для данного узла
Это поведение можно настроить, добавив метазаголовки в начало файла, например так:
# 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
В этом случае имя будет установлено как "Platformer movement" с заданным пользовательским описанием, и оно будет установлено как шаблон по умолчанию для узла, в каталоге которого оно было сохранено.
Это пример использования пользовательских шаблонов на уровне редактора и проекта:
Примечание
Шаблоны сценариев имеют то же расширение, что и обычные файлы сценариев. Это может привести к тому, что парсер скриптов будет воспринимать эти шаблоны как реальные скрипты в проекте. Чтобы избежать этого, убедитесь, что игнорируете каталог, содержащий их, создав пустой .gdignore файл. Директория больше не будет видна в файловой системе проекта, но шаблоны могут быть изменены внешним текстовым редактором в любое время.
Совет
По умолчанию все файлы C# в каталоге проекта включаются в компиляцию. Шаблоны скриптов необходимо вручную исключить из проекта C#, чтобы избежать ошибок сборки. См. раздел Исключение файлов из сборки в документации Microsoft.
Можно создавать шаблоны уровня редактора, имеющие тот же уровень, что и шаблоны, специфичные для проекта, а также имеющие то же имя, что и встроенные шаблоны; все они будут отображаться в диалоговом окне нового скрипта.
Шаблон по умолчанию
Чтобы переопределить шаблон по умолчанию, создайте пользовательский шаблон на уровне редактора или проекта внутри каталога Node (или более конкретного типа, если требуется переопределить только подтип) и начните файл с заголовка meta-default: true.
Только один шаблон может быть установлен в качестве шаблона по умолчанию для одного и того же типа узла.
Здесь показаны шаблоны Default для базовых узлов, как для GDScript, так и для C#, поэтому вы можете использовать их в качестве основы для создания других шаблонов:
# 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)
{
}
}
Редактор Godot предоставляет набор полезных встроенных шаблонов, специфичных для узлов, таких как basic_movement для CharacterBody2D и CharacterBody3D, а также plugin для EditorPlugin.
Список заполнителей шаблонов
Ниже приведен полный список встроенных заполнителей шаблонов, которые в настоящее время реализованы.
Базовые заполнители
Заполнитель |
Описание |
|---|---|
|
Имя пространства имен Godot (используется только в C#). |
|
Имя нового класса. |
|
Имя нового класса - |
|
Базовый тип, от которого наследуется новый сценарий. |
|
Заполнитель отступа. Точный тип и количество пробелов, используемых для отступа, определяются настройками |
Типы заполнителей
Раньше в Godot 3.x были заполнители для подсказок типов GDScript, которые заменялись всякий раз, когда шаблон использовался для создания нового скрипта, например: %INT_TYPE%, %STRING_TYPE%, %FLOAT_TYPE% или %VOID_RETURN%.
Заполнители больше не работают в Godot 4.x, но если настройка text_editor/completion/add_type_hints из EditorSettings отключена, подсказки типов для параметров и возвращаемых типов будут автоматически удалены для нескольких базовых типов:
intStringArray[String]floatvoid:=будет преобразовано в=