Сергей Тюльпин
Портфолио Unity Разработчика

Отслеживание рук и взаимодействие взглядом (Gaze Interactor)
Основной платформой проекта была Meta Quest 3, поэтому я решил использовать в игре отслеживание рук и взаимодействие взглядом (Gaze Interactor). Я сделал этот выбор с расчётом на то, что со временем эти технологии будут совершенствоваться.
Браслет
Использование стандартного пользовательского интерфейса — не лучшая идея для VR-игры, поэтому я решил сделать браслет на руке игрока, который можно открыть взглядом. На нём расположены кнопки, такие как список задач, магазин, начало дня и т.д.


Очистка
В этой игре я хотел реализовать три основные механики. Одна из них — очистка протеза: игрок берёт губку и протирает ею его поверхность.
Эффект загрязнения реализован просто: скрипт создаёт поверх исходного объекта новый объект с тем же мешем, но другим материалом. При соприкосновении губки с исходным объектом непрозрачность материала грязи уменьшается. Когда она достигает нуля, скрипт удаляет объект с грязью.
Замена деталей
Вторая основная механика — замена сегментов протеза. Игрок должен открутить болты, открыть крышку, извлечь повреждённый сегмент, заказать новый и установить его на место. После этого нужно снова закрутить болты.
Для реализации этой механики я использовал XR Socket Interactor и Hinge Joint. Дополнительно я написал скрипты для управления сокетами и крышками.





Покраска
Третья механика — покраска протеза. Она состоит из трёх элементов: Голограмма — показывает образец расцветки, который должен повторить игрок. Я реализовал её с помощью второй камеры и Render Texture. Генератор капсул — оснащён экраном для выбора цвета и кнопкой для создания капсулы. Краскопульт — позволяет менять цвет отдельных частей протеза.
Диалоговая система
Чтобы донести основную идею игры, мы использовали диалоги с NPC. Для этого я разработал систему диалогов на основе ScriptableObject. Объекты реплик содержат текст, озвучку и анимации. Дополнительно я создал систему реакций. Каждая реакция содержит реплику диалога и триггер, который также представляет собой ScriptableObject. Триггеры работают через систему событий, с которой я познакомился в рамках учебной программы по программированию.



Система предметов
I programmed very simple inventory and shop system. Player can equip two kinds of weapons. Shop contains a weapon and potions, which are used for healing.
