reckfellENGINE

Иконки редактора: SVG, импорт и палитра

Иконки плагина и ядра: подключение, масштаб, цвет и диагностика.

На этой странице

Иконки редактора

Сначала выберите способ подключения. Иконка панели плагина и встроенная иконка класса попадают в редактор разными путями.

ЗадачаРешение
Стандартная иконка на кнопке плагинаВозьмите её через EditorInterface.Singleton.GetEditorTheme() из типа EditorIcons; сначала проверьте HasIcon. Рабочий пример.
Собственный SVG в проекте или плагинеПоложите файл в проект, настройте импорт и используйте как Texture2D. Пересборка движка не нужна.
Встроенная иконка нового C++-классаДобавьте SVG в исходники редактора или модуля и соберите отдельный редактор. Импорт файла в проект не регистрирует встроенную иконку.

Подготовить SVG

Для обычной иконки панели используйте холст 16×16, прозрачный фон и простую читаемую форму. Это размер дизайна, а не запрет на большие изображения: миниатюры и другие специальные иконки могут иметь другой размер.

Привязывайте прямые границы к пиксельной сетке и проверяйте результат в масштабе 1×. Не уменьшайте сложную иллюстрацию до 16 пикселей. Переведите текст в контуры; не полагайтесь на шрифт, установленный только у автора.

Сохраните следующий файл как asset://addons/my_tool/icons/CreateItem.svg:

XML
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
  <path fill="#e0e0e0" d="M7 2h2v5h5v2H9v5H7V9H2V7h5z"/>
</svg>

Цвет #e0e0e0 входит в палитру редактора. Текущая таблица преобразования для светлой темы заменяет его на #5a5a5a; белый #ffffff — на #414141. Это соответствия из Source/editor/themes/editor_color_map.cpp, а не автоматическое исправление контраста любого SVG. Произвольный цвет может остаться без изменения. Для фирменной графики не включайте преобразование вслепую.

Импортировать иконку плагина

  1. Выберите SVG в браузере ресурсов проекта и откройте панель импорта.
  2. Для иконки инструмента включите Editor → Scale with Editor Scale. Точный ключ настройки — editor/scale_with_editor_scale.
  3. Если иконка использует палитру редактора, включите Editor → Convert Colors with Editor Theme: editor/convert_colors_with_editor_theme.
  4. Нажмите Reimport. Для SVG также доступен базовый множитель svg/scale; обычно оставьте 1.0, чтобы не увеличить иконку дважды.
  5. Назначьте импортированную Texture2D свойству Icon своей кнопки или используйте её в другом контроле плагина. Жизненный цикл панели описывает создание и удаление контролов.

Эти параметры создают отдельный вариант текстуры для редактора; исходное изображение игры не становится глобально перекрашенной темой. Для обычной графики игры оставляйте настройки редактора выключенными. Если опций нет, проверьте, что выбран SVG, а не PNG или уже импортированный ресурс.

Добавить встроенную иконку

Этот путь нужен при разработке ядра. В текущем дереве исходников общие иконки лежат в Source/editor/icons/. Имя SVG без расширения становится ключом в теме: для класса используйте его точное имя и регистр. Не добавляйте второй файл с тем же именем из другого модуля.

editor/icons/SCsub собирает SVG из общей папки и путей модулей; editor_icons_builders.py формирует editor/themes/editor_icons.gen.h. Не редактируйте сгенерированный заголовок вручную. Модуль может предоставить папку через get_icons_path() в своём config.py; пример реализации есть в modules/voxel/config.py.

После изменения соберите отдельный target=editor по руководству сборки. SVG из исходников не появится в уже установленном бинарном файле только после Reimport проекта. Сохраните исходный SVG до оптимизации: оптимизатор может удалить вспомогательные данные редактора изображений.

Если результат неправильный

СимптомЧто проверить
Иконка отсутствуетПуть, регистр имени, результат импорта; для встроенной иконки — какой бинарный файл запущен и доступна ли поддержка SVG в сборке.
Тёмная иконка теряется на светлой темеПалитру и опцию преобразования; для кнопки также состояния disabled, hover и фокуса.
Размер слишком большойsvg/scale, масштаб редактора, минимальный размер контрола и отсутствие дополнительного ручного умножения.
Размытые линии при 1×Геометрию на пиксельной сетке и сложность рисунка; увеличение PNG не восстанавливает векторные границы.

Опубликованный SVG проверен установленным движком: загрузка, растеризация 16×16 и 32×32, прозрачность, цвет и явная замена палитры через DPITexture. Ручная настройка импорта, смена темы/DPI и интеграция новой иконки в C++-сборку в этом прогоне не выполнялись. Это пример ресурса, а не скриншот интерфейса.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.