Створення кастомних інструментів редактора 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 хвилин: інструмент одразу підсвічує проблеми та застосовує стандартні налаштування автоматично.
Для шейдерного pipline робимо 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 тижнів |
Вартість розраховується після обговорення конкретних вимог команди.





