Впервые на русском: Документация Unity для разработчиков. Примеры взаимодействия в VRSampleScenes. Взаимодействия в Menu scene
Продолжаем публикацию эксклюзивной информации для разработчиков Unity. Новый раздел посвящён взаимодействиям в Menu scene.
- Документация Unity для разработчиков:
- Обзор виртуальной реальности
- Проекты сэмплов для виртуальной реальности
- Начало работы с VR Development. Основы
- Утилиты Oculus Unity
- Начало работы с VR Development. Создание первого проекта виртуальной реальности
- Начало работы с VR Development. Полезная информация для разработки виртуальной реальности
- Обзор VREyeRaycaster, VRInput и VRInteractiveItem
- Обзор SelectionRadial и SelectionSlider
- Примеры взаимодействия в VRSampleScenes. Взаимодействия в Menu scene
- Примеры взаимодействия в VRSampleScenes. Взаимодействие в Лабиринте
- Примеры взаимодействия в VRSampleScenes. Взаимодействие Лётчика
- Примеры взаимодействия в VRSampleScenes. Взаимодействие в Тире 180 и Тире 360
- Вращение и позиционирование головы в виртуальной реальности
- Взаимодействие с тачпадом и клавиатурой во время игры в виртуальной реальности
- Примеры VRInput в VR Samples
- Пользовательские интерфейсы для виртуальной реальности
- Взаимодействие с пользовательским интерфейсом
- Свободное сглаживание текста для виртуальной реальности
- Движение в виртуальной реальности
- Движение в сценах VR Sample
- Старт проекта виртуальной реальности. DK2
- Старт проекта виртуальной реальности на Gear VR
- Публикация в магазине Oculus
- Оптимизация виртуальной реальности в 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 с пометкой «Работа мечты», и мы поможем вам с этим.
VR Geek » Впервые на русском: Документация Unity для разработчиков. Примеры взаимодействия в VRSampleScenes. Взаимодействия в Menu scene