Создание кастомных инструментов редактора Unity для VR графики

Наша компания по разработке видеоигр ведет независимые проекты, совместно с клиентом создает игры и оказывает дополнительные операционные услуги. Опыт нашей команды позволяет нам охватить все игровые платформы и разработать потрясающий продукт, соответствующий видению клиента и предпочтениям игроков.

От иммерсивных приложений до игровых миров и 3D-сцен

Наша выделенная команда для VR/AR/MR-разработки, Unity-продакшна и 3D-моделирования и анимации с собственными кейсами и презентациями.

Посетить персонализированный сайт
Показано 1 из 1 услугВсе 242 услуг
Создание кастомных инструментов редактора Unity для VR графики
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции
Какие этапы разработки игры?
Последние работы
  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    671
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    860
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    533

id: 229 slug: custom-unity-editor-tools-for-vr-graphics title_ru: "Создание кастомных инструментов редактора Unity для VR графики" tags: [vr-ar]

Создание кастомных инструментов редактора Unity для VR графики

Стандартный Unity Editor не создавался для VR-специфичных задач: проверки Draw Call бюджета в реальном времени, валидации Shadow Caster на соответствие Oculus VRC, контроля количества полигонов per-eye с учётом Multiview. Каждый раз открывать Frame Debugger и считать вручную — это потеря времени на каждом ревью ассетов. Кастомные Editor Tools решают эту задачу один раз и работают для всей команды.

Какие инструменты реально нужны VR-команде

Самый востребованный класс — Asset Validator. VRC Guideline для Oculus требует: меш персонажа не более 70 000 треугольников, текстуры не выше 2048×2048 без исключений, все материалы на стандартных шейдерах без Tessellation. Проверять это руками на каждом ассете невозможно при команде 5+ человек. Editor Window с AssetDatabase.FindAssets() + AssetImporter сканирует всю папку за секунды и показывает нарушителей списком с быстрой навигацией.

Второй инструмент — Scene Complexity Dashboard. Прямо в Scene View показывает текущий Draw Call count, количество Shadow Casters, статистику по материалам (сколько уникальных, сколько батчуется). Реализуется через EditorWindow + SceneView.duringSceneGui делегат + UnityEditor.Handles для оверлеев. Обновляется при любом изменении иерархии через EditorApplication.hierarchyChanged.

Третий — LOD Preview Tool. Стандартный LOD Group Inspector показывает переключение по проценту экрана, но в VR LOD distance зависит от IPD, FOV и разрешения конкретного HMD. Кастомный инструмент пересчитывает LOD transitions в реальные метры для целевого устройства (Quest 3: 96°, 2064×2208 per eye) и показывает, что игрок реально увидит на дистанции 1, 3, 10 метров.

Технические детали реализации

Unity Editor API даёт несколько уровней кастомизации:

EditorWindow — независимое окно с любым GUI. Строится на IMGUI (старый стиль) или UI Toolkit (новый, рекомендуется с Unity 2021+). Для сложных UI с таблицами и фильтрами UI Toolkit с ListView и виртуализацией заметно лучше — IMGUI будет лагать на списках из 500+ ассетов.

Custom Inspector через [CustomEditor(typeof(MyComponent))] — расширяет стандартный Inspector. Добавляем в VR Camera Rig Inspector кнопки «Validate FOV Settings», «Check IPD Range», «Preview at Quest 3 Resolution».

SceneView Tools через EditorTool (API появился в Unity 2019.1) — кастомный инструмент в Toolbar сцены. Используем для «VR Scale Reference»: отображает фигуру человека 1.75 м рядом с любым объектом для оценки масштаба в VR-пространстве.

AssetPostprocessor — хук на импорт ассетов. Автоматически применяет нужные настройки к FBX при импорте: modelImporter.importNormals = ModelImporterNormals.Calculate, ограничение LOD, генерация Read/Write флага только для меш-коллайдеров.

Из практики: в проекте архитектурной VR-визуализации команда тратила 40 минут на каждый ревью ассетов от 3D-художников — проверка полигонажа, UV развёртки, настроек импорта. После внедрения Asset Validator + AssetPostprocessor это сократилось до 5 минут: инструмент сразу подсвечивает проблемы и применяет стандартные настройки автоматически.

Для шейдерного пайплайна делаем ShaderGraph Validator: проверяет, что все ноды совместимы с URP Mobile (нет Screen Space нодов, нет Tessellation, нет GrabPass-аналогов). Реализуется через ShaderGraph.GraphData API.

Доставка инструментов команде

Кастомные Editor Tools живут в папке Editor/ проекта и не попадают в билд. Правильная практика — упаковать в Unity Package (package.json + asmdef с includePlatforms: [Editor]) и установить через Package Manager из git-репозитория. Команда получает обновления через Packages/manifest.json без ручного копирования файлов.

Этапы работы

Сбор требований. Разговариваем с командой: что проверяется вручную регулярно, где теряется время, какие ошибки повторяются.

Прототип. Быстрая Editor Window для самой болезненной задачи — команда дает обратную связь.

Полная реализация. UI Toolkit, интеграция с Asset Database, настройка AssetPostprocessor, документация по использованию.

Пакетизация. Упаковка в Unity Package для удобного распространения и обновления.

Тип инструмента Ориентировочные сроки
Простой Asset Validator (EditorWindow) 2–5 дней
Scene Complexity Dashboard с оверлеями 1–2 недели
Полный набор (validator + dashboard + LOD preview) 3–5 недель

Стоимость рассчитывается после обсуждения конкретных требований команды.