Впервые на русском: Документация Unity для разработчиков. Вращение и позиционирование головы в виртуальной реальности

Продолжаем публикацию эксклюзивной информации для разработчиков Unity. Новый раздел посвящён вращению и позиционированию головы в виртуальной реальности.

Документация Unity для разработчиков:

  1. Обзор виртуальной реальности
  2. Проекты сэмплов для виртуальной реальности
  3. Начало работы с VR Development. Основы
  4. Начало работы с VR Development. Создание первого проекта виртуальной реальности
  5. Начало работы с VR Development. Полезная информация для разработки виртуальной реальности
  6. Обзор VREyeRaycaster, VRInput и VRInteractiveItem
  7. Обзор SelectionRadial и SelectionSlider
  8. Примеры взаимодействия в VRSampleScenes. Взаимодействия в Menu scene
  9. Примеры взаимодействия в VRSampleScenes. Взаимодействие в Лабиринте
  10. Примеры взаимодействия в VRSampleScenes. Взаимодействие в Тире 180 и Тире 360
  11. Вращение и позиционирование головы в виртуальной реальности

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

Чтобы получить доступ к этим значениям, нам нужно использовать класс VR.InputTracking и указать, какой VRNode нам нужен для доступа. Чтобы получить поворот головы, нам следует использовать VRNode.Head, а не отдельные функции для глаз. Дополнительные сведения см. в разделе «Узлы камер» в разделе «Начало работы с VR Development».

Примером использования вращения в качестве способа ввода может быть незаметное вращение меню или другого объекта, основанного на вращении головы. Вы можете увидеть пример этого в сцене VRSampleScenes/Examples/Rotation и сцене ExampleRotation:

 

// Store the Euler rotation of the gameobject.

var eulerRotation = transform.rotation.eulerAngles;

 

// Set the rotation to be the same as the user’s in the y axis.

eulerRotation.x = 0;

eulerRotation.z = 0;

eulerRotation.y = InputTracking.GetLocalRotation(VRNode.Head).eulerAngles.y;

 

Вы можете видеть, как объект вращается в зависимости от того, где находится пользователь:

В нашем примере «Лётчик» (Flyer) вы можете увидеть изменения положения космического корабля, основанное на вращении головы в FlyerMovementController:

Quaternion headRotation = InputTracking.GetLocalRotation (VRNode.Head);

m_TargetMarker.position = m_Camera.position + (headRotation * Vector3.forward) * m_DistanceFromCamera;

 

Примечание: Данный материал представлен для ознакомления, при перепечатывании ссылка на оригинал обязательна. Если вы хотите принять участие в помощи проекту, пишите на editor@vrgeek.ru

Если вы разработчик и вы хотите продолжить свою карьеру в лучших компаниях России, пишите на editor@vrgeek.ru с пометкой «Работа мечты», и мы поможем вам с этим.