- Установить Unity Daydream technical preview. Убедиться, что при установке включен компонент "Android Build Support" для Android или "iOS Build Support" для iOS. Для сборки VR приложения под iOS можно использовать обычный редактор Unity версии 5.2.1 и выше.
- Создать новый проект. Выбрать нужную платформу для проекта (Android, iOS).
- Скачать и импортировать плагин Google VR SDK for Unity. Рекомендованная версия 1.10.0. Настроить плагин, используя туториал google.
- Импортировать плагин GVRNavi. Для знакомства с плагином использовать демонстрационные сцены, расположенные в каталоге «GVRNavi/Examples/Scenes/
Использование плагина:
1. Разместить на сцене префаб с контроллером игрока «GVRNavi/Prefabs/VRPlayer». Скрипт VRPlayerController содержит базовую логику контролера персонажа. К дочерним объектам префаба относятся:
- основная камера сцены;
- объект VRReticlePointer, который является графическим отображением центральной точки взгляда игрока.
Настройки компонента VRReticlePointer в инспекторе позволяют выбрать режим взаимодействия игрока с VR-объектами сцены, а также указать величину масштабирования графического указателя взгляда игрока;
- объект 3D_UI, который является контейнером для VR-объектов, из которых составляется трехмерное сферическое меню, окружающее игрока. Скрипт VR3DRoot содержит логику обработку VR-колец, из которых состоит сферическое меню, их масштабирование, позиционирование, раскрытие/сворачивание.
2. Составить сферическое меню из необходимых компонентов, размещенных в каталоге «GVRNavi/Prefabs»:
-
VRRingSimple – простое кольцо, предназначенное для активации простых функций. Пользователь может назначать вызов функций на событие попадания прицела в область кольца, событие выхода прицела из области и событие активации кольца. Скрипт VRRingSimple позволяет настроить время фокусировки взгляда на кольце, необходимое для активации кольца, размеры кольца в свернутом и развернутом состояниях, цвет и прозрачность кольца в различных состояниях. Также необходимо назначить главную камеру сцены в скрипте FloorPanelRotation.cs.
-
VRRingContainer – составное кольцо, которое может содержать дочерние VR-объекты. Пользователь может назначать вызов функций на событие попадания прицела в область кольца, событие выхода прицела из области и событие активации кольца. Скрипт VRRingContainer позволяет настроить время фокусировки взгляда на кольце, необходимое для активации кольца, размеры кольца в свернутом и развернутом состояниях, цвет и прозрачность кольца в различных состояниях, прозрачность дочерних VR-объектов, наполнить список дочерних объектов. Также необходимо назначить главную камеру сцены в скрипте FloorPanelRotation.cs.
-
VRButton – кнопка, которая может быть как самостоятельным объектом в любом месте сцены, так и дочерним объектом составного кольца.
Чтобы добавить кнопку на кольцо, необходимо переместить пребаф кнопки на сцену, указав родительским объектом корень составного кольца «VRRingContainer/Root». Пользователь может назначать вызов функций на событие попадания прицела в область кнопки, событие выхода прицела из области и событие активации (нажатия) кнопки. Скрипт VRButton позволяет настроит время фокусировки взгляда на кнопке, необходимое для ее активации (нажатия), спрайт кнопки, цвет кнопки в различных состояниях.
-
VRToggle – переключатель, который может быть как самостоятельным объектом в любом месте сцены, так и дочерним объектом составного кольца. Чтобы добавить переключатель на кольцо, необходимо переместить пребаф переключателя на сцену, указав родительским объектом корень составного кольца «VRRingContainer/Root». Пользователь может назначать вызов функций на событие попадания прицела в область кнопки, событие выхода прицела из области и событие активации (нажатия) кнопки. Скрипт VRToggle позволяет настроит время фокусировки взгляда на переключателе, необходимое для его активации (переключения), спрайты переключателя, цвета переключателя в различных состояниях, стандартное значение переключателя (включен/отключен).
-
VRScrollBar – скролл, который может быть как самостоятельным объектом в любом месте сцены, так и дочерним объектом составного кольца. Чтобы добавить скролл на кольцо, необходимо переместить пребаф скролла на сцену, указав родительским объектом корень составного кольца «VRRingContainer/Root». Пользователь может назначать вызов функций на событие попадания прицела в область скролла, событие выхода прицела из области и событие активации (нажатия) подвижного элемента скролла. Скролл также является составным объектом и содержит в дочерних объектах две кнопки VRButton. Скрипт VRScrollBar позволяет настроить время фокусировки взгляда на скролле, необходимое для активации подвижного элемента, спрайты заднего фона и подвижного элемента, цвета скролла в различных состояниях, стандартное положение подвижного элемента, прозрачность дочерних VR-объектов, список дочерних объектов (в которые по умолчанию входят две кнопки VRButton).
3. Для создания собственного VR-объекта, необходимо создать скрипт, наследованный от класса VRObjectGaze, и реализующий интерфейс IGvrGazeResponder. VR-объект должен содержать компонент Collider. Реализация интерфейса IVRContainer позволяет корректно назначать VR-объекту дочерние VR-объекты.
Дополнение:
Для рендеринга спрайтов VR-объектов в сферическом меню используется шейдер GVRNavi AdditiveZTest, в которой отключен тест глубины. Таким образом объекты меню будут видны игроку, даже если на сцене их перекрывает другой объект. Если вы используете такие VR-объекты как кнопки, чекбоксы и скроллбары вне сферического меню, вы должны назначить материал с шейдером, в котором используется тест глубины (например, GVRNavi Additive).