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.
Checking the stable version of the documentation...
Вступ до розробки редактора
На цій сторінці ви дізнаєтеся:
Дизайнерські рішення, що стоять за редактором Godot.
Як ефективно працювати над кодом C++ редактора Godot.
Цей посібник призначений для поточних або майбутніх учасників движка. Щоб створити плагіни редактора в GDScript, перегляньте Створення додатків.
Дивись також
Якщо ви новачок у Godot, ми рекомендуємо вам прочитати Філософія архітектури Godot, перш ніж продовжити. Оскільки редактор Godot — це проект Godot, написаний мовою C++, велика частина філософії двигуна стосується редактора.
Технічні варіанти
Редактор Godot намальовано за допомогою рендерера Godot і UI system. Він не покладається на такі інструменти, як GTK або Qt. Це схоже за духом на таке програмне забезпечення, як Blender. Хоча використання наборів інструментів полегшує досягнення «рідного» вигляду, вони також досить важкі, і їх ліцензування несумісне з Godot's.
Редактор повністю написаний на C++. Він не може містити код GDScript або C#.
Структура каталогу
Код редактора повністю міститься в папці editor/ сховища вихідних кодів Godot.
Деякі функції редактора також реалізовані через modules. Деякі з них увімкнено лише в збірках редакторів, щоб зменшити двійковий розмір шаблонів експорту. Перегляньте папку modules/ у сховищі вихідних кодів Godot.
Деякі важливі файли в редакторі:
editor/editor_node.cpp: Головний файл ініціалізації редактора. Фактично "головна сцена" редактора.
editor/project_manager/project_manager.cpp: Головний файл ініціалізації менеджера проектів. Фактично, це «головна сцена» менеджера проектів.
editor/scene/canvas_item_editor_plugin.cpp: Вікно перегляду 2D-редактора та пов'язані з ним функції (панель інструментів угорі, режими редагування, накладені допоміжні елементи/панелі, …).
editor/scene/3d/node_3d_editor_plugin.cpp: Вікно перегляду 3D-редактора та пов'язані з ним функції (панель інструментів угорі, режими редагування, накладені панелі тощо).
editor/scene/3d/node_3d_editor_gizmos.cpp: Де визначено та намальовано 3D-редакторські гізми. Цей файл не має 2D-аналога, оскільки 2D-гізми малюються самими вузлами.
Залежності редактора у файлах scene/
Під час роботи над функцією редактора вам, можливо, доведеться змінити файли у вузлах графічного інтерфейсу Godot, які ви можете знайти в папці scene/.
Слід пам’ятати про одне правило: ви не вводите нові залежності для включення editor/ в інші папки, такі як scene/. Це стосується навіть якщо ви використовуєте #ifdef TOOLS_ENABLED.
Щоб зробити кодову базу легшою для дотримання та більш автономною, дозволений порядок залежностей такий:
editor/->scene/->servers/->core/
Це означає, що файли в editor/ можуть залежати від включень з scene/, servers/ і core/. Але, наприклад, scene/ може залежати від включень із servers/ і core/, він не може залежати від включень editor/.
Наразі існують деякі залежності, які editor/ включає у файли scene/, але вони перебувають у процесі видалення.
Поради щодо розвитку
Щоб швидко працювати з редактором, радимо налаштувати тестовий проект і відкрити його з командного рядка після компіляції редактора. Таким чином, вам не доведеться проходити через менеджер проекту щоразу, коли ви запускаєте Godot.