Впервые на русском: Документация Unity для разработчиков. Примеры взаимодействия в VRSampleScenes. Взаимодействия в Menu scene

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

  1. Документация Unity для разработчиков:
    1. Обзор виртуальной реальности
    2. Проекты сэмплов для виртуальной реальности
    3. Начало работы с VR Development. Основы
    4. Утилиты Oculus Unity
    5. Начало работы с VR Development. Создание первого проекта виртуальной реальности
    6. Начало работы с VR Development. Полезная информация для разработки виртуальной реальности
    7. Обзор VREyeRaycaster, VRInput и VRInteractiveItem
    8. Обзор SelectionRadial и SelectionSlider
    9. Примеры взаимодействия в VRSampleScenes. Взаимодействия в Menu scene
    10. Примеры взаимодействия в VRSampleScenes. Взаимодействие в Лабиринте
    11. Примеры взаимодействия в VRSampleScenes. Взаимодействие Лётчика
    12. Примеры взаимодействия в VRSampleScenes. Взаимодействие в Тире 180 и Тире 360
    13. Вращение и позиционирование головы в виртуальной реальности
    14. Взаимодействие с тачпадом и клавиатурой во время игры в виртуальной реальности
    15. Примеры VRInput в VR Samples
    16. Пользовательские интерфейсы для виртуальной реальности
    17. Взаимодействие с пользовательским интерфейсом
    18. Свободное сглаживание текста для виртуальной реальности
    19. Движение в виртуальной реальности
    20. Движение в сценах VR Sample
    21. Старт проекта виртуальной реальности. DK2
    22. Старт проекта виртуальной реальности на Gear VR
    23. Публикация в магазине Oculus
    24. Оптимизация виртуальной реальности в Unity. Введение

Теперь давайте рассмотрим некоторые примеры взаимодействия, которые мы включили в наш проект VR Samples. Мы обсудим некоторые из взаимодействий, которые использует каждая сцена, и как они реализованы.

Каждый экран меню имеет несколько компонентов. Особый интерес представляют здесь MenuButton, VRInteractiveItem и Mesh Collider.

Компонент MenuButton подписывается на события OnOver и OnOut на компоненте VRInteractiveItem, а потому, когда сетка находится над экраном меню, появляется радиальное мню, и, если смотреть в сторону от пункта меню, радиус выбора исчезает. Когда радиальный вид выбора отображается, а Fire1 удерживается, радиус заливается цветом:

Этот класс также подписывается на событие OnSelectionComplete на SelectionRadial, так что, когда радиал заполнен, вызывается HandleSelectionComplete, который вытесняет камеру и загружает выбранный уровень.

 

private void OnEnable ()

{

m_InteractiveItem.OnOver += HandleOver;

m_InteractiveItem.OnOut += HandleOut;

m_SelectionRadial.OnSelectionComplete += HandleSelectionComplete;

}

 

 

private void OnDisable ()

{

m_InteractiveItem.OnOver -= HandleOver;

m_InteractiveItem.OnOut -= HandleOut;

m_SelectionRadial.OnSelectionComplete -= HandleSelectionComplete;

}

 

 

private void HandleOver()

{

// When the user looks at the rendering of the scene, show the radial.

m_SelectionRadial.Show();

 

m_GazeOver = true;

}

 

 

private void HandleOut()

{

// When the user looks away from the rendering of the scene, hide the radial.

m_SelectionRadial.Hide();

 

m_GazeOver = false;

}

 

 

private void HandleSelectionComplete()

{

// If the user is looking at the rendering of the scene when the radial’s selection finishes, activate the button.

if(m_GazeOver)

StartCoroutine (ActivateButton());

}

 

 

private IEnumerator ActivateButton()

{

// If the camera is already fading, ignore.

if (m_CameraFade.IsFading)

yield break;

 

// If anything is subscribed to the OnButtonSelected event, call it.

if (OnButtonSelected != null)

OnButtonSelected(this);

 

// Wait for the camera to fade out.

yield return StartCoroutine(m_CameraFade.BeginFadeOut(true));

 

// Load the level.

SceneManager.LoadScene(m_SceneToLoad, LoadSceneMode.Single);

}

 

Давайте посмотрим на некоторые примеры радиального выбор, обратите внимание на розовые элементы в центре скриншотов ниже:

Только сетка

Пустой вид радиального выбора, так как пользователь смотрит на экран меню

Радиальный выбор заполнен (пользователь смотрит на экран меню и удерживает ввод Fire1)

Мы стараемся поддерживать этот стиль в рамках всего проекта сэмплов с помощью радиальных элементов, которые занимают согласованное количество времени. Мы рекомендуем вам подумать об этом при работе над собственными проектами виртуальной реальности, поскольку согласованность в UX делает условия комфортными для пользователя и помогает ему привыкнуть к тому, что может быть для него новым.

 

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

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