Вступ до розробки редактора
На цій сторінці ви дізнаєтеся:
Дизайнерські рішення, що стоять за редактором 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.cpp: Головний файл ініціалізації менеджера проектів. Фактично "головна сцена" менеджера проекту.
editor/plugins/canvas_item_editor_plugin.cpp: вікно перегляду 2D-редактора та відповідні функції (панель інструментів угорі, редагування режими, накладені помічники/панелі, …).
editor/plugins/node_3d_editor_plugin.cpp: Вікно перегляду 3D-редактора та пов'язана з ним функціональність (панель інструментів у верхній частині, режими редагування, накладені панелі, ...).
editor/plugins/node_3d_editor_gizmos.cpp: де визначаються та малюються гізмо 3D-редактора. Цей файл не має 2D аналога, оскільки 2D gizmos малюються самими вузлами.
Залежності редактора у файлах scene/
Під час роботи над функцією редактора вам, можливо, доведеться змінити файли у вузлах графічного інтерфейсу Godot, які ви можете знайти в папці scene/.
Слід пам’ятати про одне правило: ви не вводите нові залежності для включення editor/ в інші папки, такі як scene/. Це стосується навіть якщо ви використовуєте #ifdef TOOLS_ENABLED.
Щоб зробити кодову базу легшою для дотримання та більш автономною, дозволений порядок залежностей такий:
editor/->scene/->servers/->core/
Це означає, що файли в editor/ можуть залежати від включень з scene/, servers/ і core/. Але, наприклад, scene/ може залежати від включень із servers/ і core/, він не може залежати від включень editor/.
Наразі існують деякі залежності, які editor/ включає у файли scene/, але вони перебувають у процесі видалення.
Поради щодо розвитку
Щоб швидко працювати з редактором, радимо налаштувати тестовий проект і відкрити його з командного рядка після компіляції редактора. Таким чином, вам не доведеться проходити через менеджер проекту щоразу, коли ви запускаєте Godot.