Создание сценарных шаблонов

Godot предоставляет способ использования сценарных шаблонов, как показано в Script Create Dialog, при создании нового скрипта:

../../_images/script_create_dialog_templates.png

Набор сценарных шаблонов предоставляется по умолчанию, но также можно изменять существующие и создавать новые, как для каждого проекта, так и для редактора.

Расположение шаблонов

Есть два места, где можно управлять шаблонами.

Шаблоны, определенные редактором

Они доступны глобально в рамках любого проекта. Расположение этих шаблонов определяется для каждой ОС:

  • Windows: %APPDATA%\Godot\script_templates\
  • Linux: $HOME/.local/share/godot/script_templates/
  • macOS: $HOME/Library/Application Support/Godot/script_templates/

Если script_templates не обнаружен, Godot автоматически создаст набор встроенных шаблонов по умолчанию, поэтому эта логика может быть использована для сброса шаблонов по умолчанию в случае их случайной перезаписи.

Шаблоны, определенные проектом

По умолчанию для поиска шаблонов используется каталог res://script_templates/. Путь можно изменить, настроив параметр editor/script_templates_search_path в ProjectSettings, как с помощью кода, так и с помощью редактора.

Если в проекте не найден каталог script_templates, он просто игнорируется.

Языковая поддержка и переопределяющее поведение

В зависимости от того, реализует ли конкретный язык способ генерирования скриптов из шаблонов, можно создать шаблон, который может быть распознан этим языком в соответствии с расширением файла шаблона. Для GDScript и C# расширения должны быть gd и cs соответственно.

Примечание

Шаблоны сценариев имеют то же расширение, что и обычные файлы сценариев. Это может привести к тому, что синтаксический анализатор скриптов будет рассматривать эти шаблоны как реальные скрипты внутри проекта. Чтобы избежать этого, убедитесь, что вы игнорируете каталог, содержащий их, создав файл .gdignore. Каталог больше не будет виден во всей файловой системе проекта, но шаблоны могут быть изменены внешним текстовым редактором в любое время.

Встроенные шаблоны редактора автоматически затеняются шаблонами конкретного проекта, если оба сценария имеют одинаковое имя файла.

Шаблон по умолчанию

Шаблон Default всегда генерируется динамически для каждого языка и не может быть настроен или переопределен, но вы можете использовать его в качестве основы для создания других шаблонов.

extends %BASE%


# Declare member variables here. Examples:
# var a%INT_TYPE% = 2
# var b%STRING_TYPE% = "text"


# Called when the node enters the scene tree for the first time.
func _ready()%VOID_RETURN%:
    pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta%FLOAT_TYPE%)%VOID_RETURN%:
#   pass
using Godot;
using System;

public class %CLASS% : %BASE%
{
    // Declare member variables here. Examples:
    // private int a = 2;
    // private string b = "text";

    // 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(float delta)
//  {
//
//  }
}

Список заполнителей шаблонов

Ниже приведен полный список встроенных заполнителей шаблонов, которые в настоящее время реализованы.

Базовые заполнители

Заполнитель Описание
%CLASS% Имя нового класса (используется только в C#).
%BASE% Базовый тип, от которого наследуется новый сценарий.
%TS% Заполнитель вдавливания. Точный тип и количество пробелов, используемых для отступа, определяются настройками text_editor/indent/type и text_editor/indent/size в файле EditorSettings соответственно.

Типы заполнителей

Они актуальны только для GDScript со статической типизацией. Будут ли эти заполнители фактически заменены, определяется параметром text_editor/completion/add_type_hints в файле EditorSettings.

Заполнитель Значение
%INT_TYPE% : int
%STRING_TYPE% : String
%FLOAT_TYPE% : float
%VOID_RETURN% -> void