Прототип VR-тренажера, разработанный в рамках тестового задания. Проект симулирует процесс проверки бытовой газовой плиты, поиск утечек с помощью газоанализатора и проверку конфорок на предмет неисправностей.
Разработка основного функционала и рефакторинг заняли менее 24 часов.
- Спички и коробок: Реализована физическая механика розжига. Спичка зажигается только при физическом чирканье о специальную зону (Trigger) на коробке с учетом расчета относительной скорости движения рук.
- Плита: Интерактивные ручки (поворот на 90°) и дверца духовки (вращение по оси X с правильным смещением Pivot-точки).
- Тактильный отклик: Использование Haptic Feedback при розжиге спичек.
- Конфорки: Поддерживают два состояния: нормальное горение (синее пламя, ровный звук) и неисправное (желтое/мерцающее пламя, звук хлопков).
- Оптимизация звука: Использован подход с одним
AudioSourceна объект. Реализовано плавное переключение между зацикленным шипением газа, разовым звуком вспышки (PlayOneShot) и гулом пламени.
- Интерактивный предмет с тремя состояниями UI-экрана (Ожидание, Норма, Тревога).
- Разделение логики: Сенсор отличает просто выходящий из конфорки газ (вызывает тревогу прибора, но не является целью задания) от реальной утечки на газовой трубе (
GasLeakZone), которая идет в зачет прохождения. - Аудио-отклик при взятии/сбросе предмета и зацикленная сирена при обнаружении газа.
- Централизованный Singleton-менеджер
GameManagerотслеживает действия пользователя. - Успешное завершение диагностики засчитывается только тогда, когда игрок проверит работу всех конфорок и локализует скрытую утечку на трубе.
После реализации основного функционала был проведен полный рефакторинг:
- Код строго разделен на изолированные модули с использованием пространств имен (Namespaces):
GasStoveSimulator.Modules.Burner,GasStoveSimulator.Modules.GasDetectorи т.д. - Использован плагин NaughtyAttributes для чистого, читаемого и структурированного Inspector'а.
- Избегание "магических чисел", оптимизация проверок в
Updateи корректная отписка от событийOnEnable/OnDisableдля предотвращения утечек памяти. - Реализована кастомная система логгирования (
ColoredDebug).
Для обеспечения комфортного, но классического игрового опыта были перенастроены стандартные параметры XR Rig:
- Отключено туннельное затемнение (Tunneling Vignette).
- Настроено плавное вращение (Continuous Turn) вместо резкого (Snap Turn).
- Склонируйте репозиторий.
- Откройте проект в Unity (версия 2022.3).
- Для запуска потребуется подключенная VR-гарнитура (например, Meta Quest 2/3 через Quest Link) или XR Device Simulator.
Проект выполнен специально для оценки навыков VR-разработки на Unity.