Створення скриптових шаблонів
Godot надає спосіб використання скриптових шаблонів, як це видно в Script Create Dialog під час створення нового скрипта:
Набір вбудованих шаблонів сценаріїв надається разом із редактором, але також можна створювати нові та встановлювати їх за замовчуванням як для кожного проекту, так і в області редактора.
Шаблони пов’язані з певним типом вузла, тому, коли ви створюєте скрипт, ви побачите лише шаблони, які відповідають цьому конкретному вузлу або одному з його батьківських типів. Наприклад, якщо ви створюєте скрипт для 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.gdscript_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
// meta-name: Platformer movement
// meta-description: Predefined movement for classical platformers
// meta-default: true
// meta-space-indent: 4
У цьому випадку ім’я буде встановлено на «Рух платформера» з заданим спеціальним описом, і його буде встановлено як шаблон за замовчуванням для вузла, у каталозі якого його було збережено.
Це приклад використання спеціальних шаблонів на рівні редактора та проекту:
Примітка
Шаблони сценаріїв мають те саме розширення, що й звичайні файли сценаріїв. Це може призвести до проблеми аналізатора сценаріїв, розглядаючи ці шаблони як фактичні сценарії в рамках проекту. Щоб уникнути цього, переконайтеся, що ігноруєте каталог, що містить їх, створивши порожній файл .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
// 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:=буде перетворено на=