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.

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

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

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