Поделиться через


Взгляд головы в Unity

Gaze — это основной способ нацеливания на голограммы, которые приложение создает в Смешанная реальность.

Реализация взгляда на голову

Концептуально вы определяете направление головы , проецируя луч вперед с гарнитуры пользователя, чтобы увидеть, что он попадает. В Unity положение головы и направление пользователя отображаются через камеру, в частности UnityEngine.Camera.main. transform.forward и UnityEngine.Camera.main. transform.position.

Вызов Physics.RayCast дает вам RaycastHit , содержащий сведения о столкновении, включая трехмерную точку столкновения и другой GameObject попадания луча головы взгляда.

Пример. Реализация head-gaze

void Update()
{
       RaycastHit hitInfo;
       if (Physics.Raycast(
               Camera.main.transform.position,
               Camera.main.transform.forward,
               out hitInfo,
               20.0f,
               Physics.DefaultRaycastLayers))
       {
           // If the Raycast has succeeded and hit a hologram
           // hitInfo's point represents the position being gazed at
           // hitInfo's collider GameObject represents the hologram being gazed at
       }
}

Рекомендации

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

Визуализация взгляда головы

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

Head-gaze в наборе средств Смешанная реальность

Вы можете получить доступ к head-gaze из диспетчера ввода в MRTK.

Следующий этап разработки

Если вы следите за путь разработки Unity, который мы изложили, вы находитесь в разгар изучения основных стандартных блоков MRTK. Отсюда вы можете перейти к следующему стандартному блоку:

Или перейдите к возможностям и API платформы смешанной реальности:

Вы можете в любой момент вернуться к этапам разработки для Unity.

См. также раздел