Створення скриптових шаблонів

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

../../_images/script_create_dialog_templates.webp

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

Шаблони пов’язані з певним типом вузла, тому, коли ви створюєте скрипт, ви побачите лише шаблони, які відповідають цьому конкретному вузлу або одному з його батьківських типів. Наприклад, якщо ви створюєте скрипт для CharacterBody3D, ви побачите лише шаблони, визначені для CharacterBody3D, Node3D або Nodes.

Розташування шаблонів

Є два місця, де можна керувати шаблонами.

Шаблони, визначені редактором

Вони доступні глобально в рамках будь-якого проєкту. Розташування цих шаблонів визначається для кожної ОС:

  • Windows: %APPDATA%\Godot\script_templates\

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

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

Якщо ви отримуєте Godot не з офіційного веб-сайту, як-от Steam, папка може бути в іншому місці. Знайти його можна за допомогою редактора Godot. Перейдіть до Редактор > Відкрити папку даних/налаштувань редактора, і це відкриє папку у вашому браузері файлів, усередині цієї папки є папка script_templates.

Шаблони, визначені проєктом

Шляхом за замовчуванням для пошуку шаблонів є каталог res://script_templates/. Шлях можна змінити, налаштувавши параметр проекту Editor > Script > Templates Search Path, як через код, так і через редактор.

Якщо в проєкті не знайдено каталог script_templates, то він просто ігнорується.

Організація шаблону та іменування

Як редактор, так і шаблони, визначені проектом, організовані таким чином:

template_path/node_type/file.extension

де:

  • template_path є одним із 2 розташувань, розглянутих у попередніх двох розділах.

  • node_type це вузол, до якого він застосовуватиметься (наприклад, Node або CharacterBody3D), це чутливо до регістру. Якщо скрипт не знаходиться у відповідній папці node_type, його не буде виявлено.

  • file — це власне ім’я, яке ви можете вибрати для шаблону (наприклад, platformer_movement або smooth_camera).

  • extension вказує, до якої мови застосовуватиметься шаблон (це має бути gd для GDScript або cs для C#).

Приклад:

  • script_templates/Node/smooth_camera.gd

  • script_templates/CharacterBody3D/platformer_movement.gd

Поведінка за замовчуванням та її заміна

За замовчуванням:

  • ім'я шаблону збігається з ім'ям файлу (без розширення, prettyfied)

  • опис порожній

  • відступ пробілу встановлено на 4

  • шаблон не буде встановлено за замовчуванням для даного вузла

Цю поведінку можна налаштувати, додавши метазаголовки на початку файлу, ось так:

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

У цьому випадку ім’я буде встановлено на «Рух платформера» з заданим спеціальним описом, і його буде встановлено як шаблон за замовчуванням для вузла, у каталозі якого його було збережено.

Це приклад використання спеціальних шаблонів на рівні редактора та проекту:

../../_images/script_create_dialog_custom_templates.webp

Примітка

Шаблони сценаріїв мають те саме розширення, що й звичайні файли сценаріїв. Це може призвести до проблеми аналізатора сценаріїв, розглядаючи ці шаблони як фактичні сценарії в рамках проекту. Щоб уникнути цього, переконайтеся, що ігноруєте каталог, що містить їх, створивши порожній файл .gdignore. Каталог більше не буде видимим у файловій системі проекту, але шаблони можна будь-коли змінити за допомогою зовнішнього текстового редактора.

Порада

За замовчуванням кожен файл C# у каталозі проекту включається до компіляції. Шаблони сценаріїв потрібно вручну виключити з проекту C#, щоб уникнути помилок збірки. Перегляньте Виключення файлів із збірки у документації Microsoft.

Можна створювати шаблони рівня редактора, які мають той самий рівень, що й шаблони для конкретного проекту, а також мають таку саму назву, як і вбудовані шаблони, усе це буде показано в діалоговому вікні нового сценарію.

Шаблон Default (за замовчуванням)

Щоб замінити шаблон за замовчуванням, створіть спеціальний шаблон на рівні редактора або проекту в каталозі Node (або більш конкретного типу, якщо потрібно перевизначити лише підтип) і запустіть файл із meta-default : заголовок true.

Лише один шаблон може бути одночасно встановлений за замовчуванням для одного типу вузла.

Тут показано шаблони За замовчуванням для основних вузлів, як для 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

Редактор Godot надає набір корисних вбудованих шаблонів для вузлів, таких як basic_movement для обох CharacterBody2D і CharacterBody3D і plugin для EditorPlugin.

Список заповнювачів шаблону

Далі описується повний перелік вбудованих заповнювачів шаблонів, які реалізовані на даний момент.

Основні заповнювачі

Проміжний

Опис

_BINDINGS_NAMESPACE_

Ім'я простору імен Godot (використовується лише в C#).

_CLASS_

Назва нового класу.

_CLASS_SNAKE_CASE_

Назва нового класу як snake_case (використовується лише в GDScript).

_BASE_

Базовий тип, який успадковує новий скрипт.

_TS_

Заповнювач відступу. Точний тип і кількість пробілів, які використовуються для відступів, визначаються налаштуваннями text_editor/indent/type і text_editor/indent/size у EditorSettings відповідно. Може бути перевизначений заголовком meta-space-indent у шаблоні.

Типи заповнювачів

Раніше в Godot 3.x існували заповнювачі для підказок типу GDScript, які замінювалися щоразу, коли шаблон використовувався для створення нового сценарію, наприклад: %INT_TYPE%, %STRING_TYPE%, %FLOAT_TYPE% або %VOID_RETURN%.

Заповнювачі більше не працюють для Godot 4.x, але якщо параметр text_editor/completion/add_type_hints з EditorSettings вимкнено, підказки щодо введення параметрів і типів повернення буде автоматично видалено для декілька базових типів:

  • int

  • String

  • Array[String]

  • float

  • void

  • := буде перетворено на =