Разработка редактора: выбрать точку расширения
Плагин, инструменты, тема или ядро: куда идти и что проверять.
Разработка редактора
Сначала определите, нужно ли расширить редактор средствами проекта или изменить его C++-реализацию. Большинство панелей, проверок ресурсов и команд можно начать с EditorPlugin; для этого не требуется пересборка движка.
| Задача | Начать здесь |
|---|---|
| Своя панель и команда | EditorPlugin и EditorDock. |
| Отдельная рабочая область | Главный экран плагина. |
| Новый редактор свойства | Inspector-плагин. |
| Код, выполняемый при редактировании уровня | Tool-код. |
| Согласованные цвета, иконки и размеры | Тема инструментов. |
| Изменение встроенного поведения, недоступного через API | Архитектура редактора, затем отдельная сборка исходников. |
Минимальный рабочий цикл
- Создайте отдельный проект для инструмента. Не начинайте с массового изменения рабочего проекта или установленного Runtime.
- Сформулируйте одну операцию: например, проверить ресурсы выбранного уровня. Отделите чтение от действий, изменяющих файлы и дерево Entity.
- Используйте публичный EditorInterface и предусмотренную точку расширения. Поиск внутренних контролов по имени или тексту кнопки не является устойчивым API плагина.
- Зарегистрируйте элементы при включении плагина и удалите их при выключении. Проверьте повторное включение без дублированных панелей и обработчиков.
- Для изменения уровня предусмотрите undo/redo. Успешная работа кнопки, которая только читает дерево, не доказывает правильность редактирования и отмены.
- Проверьте длинный текст, размер окна, фокус клавиатуры и выбранную тему. Затем откройте проект повторно.
Когда действительно нужен C++
Если нужного публичного контракта нет, сначала найдите владельца функции в текущих исходниках и минимальное изменение. Сборка редактора и установка его поверх рабочего движка — разные действия. Для эксперимента используйте отдельный бинарный файл; порядок описан в разработке движка.
Не переносите имена файлов и внутренних классов из старого руководства без проверки: структура редактора меняется. Идентификаторы API в C# при этом должны соответствовать установленному SDK.