Головной взгляд в UnityHead-gaze in Unity

Взгляд — это основной способ, с помощью которого пользователи могут ориентироваться на голограммы , создаваемые приложением в смешанной реальности.Gaze is the primary way for users to target holograms your app creates in Mixed Reality.

Реализация головного взглядаImplementing head-gaze

По сути, вы определяете головное взгляд , выполняя проекцию луча вперед от гарнитуры пользователя, чтобы узнать, что он касается.Conceptually, you determine head-gaze by projecting a ray forward from the user's headset to see what it hits. В Unity расположение и направление головного пользователя предоставляются через камеру, в частности UnityEngine. Camera. Main. преобразование. Forward и UnityEngine. Camera. Main. Transform. Disposition.In Unity, the user's head position and direction are exposed through the Camera, specifically UnityEngine.Camera.main.transform.forward and UnityEngine.Camera.main.transform.position.

Вызов функции физик. райкаст дает вам райкассит , содержащий сведения о конфликте, включая трехмерную точку конфликта, а другой GameObject — попадание в голову.Calling Physics.RayCast gives you a RaycastHit containing information about the collision, including the 3D collision point and the other GameObject the head-gaze ray hit.

Пример: реализация Heading-взглядаExample: Implement 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
       }
}

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

Хотя в приведенном выше примере в цикле обновления создается один райкаст, чтобы найти целевые точки пользователя, мы рекомендуем использовать один объект для управления всеми процессами головного взгляда.While the example above fires a single raycast from the update loop to find the target the user's head points at, we recommended using a single object to manage all head-gaze processes. Объединение логики с помощью Head-взгляда позволит сохранить ценную вычислительную мощность приложения и ограничить райкастинг на один кадр.Combining your head-gaze logic will save your app precious processing power and limit your raycasting to one per frame.

Визуализация головного взглядаVisualizing head-gaze

Как и в случае с указателем мыши на компьютере, необходимо реализовать курсор , представляющий голову пользователя.Just like with a mouse pointer on a computer, you should implement a cursor that represents the user's head-gaze. Знание содержимого, на которое нацелен пользователь, повышает уверенность в том, с чем они взаимодействуют.Knowing what content a user is targeting increases confidence in what they're about to interact with.

Руководитель-взгляд в наборе средств Mixed RealityHead-gaze in the Mixed Reality Toolkit

Вы можете получить доступ к Head с помощью диспетчера ввода в мртк.You can access head-gaze from the Input Manager in MRTK.

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

Если вы пойдете из пути разработки Unity, мы собрались, что вы в состоянии изучить стандартные блоки МРТК Core.If you're following the Unity development journey we've laid out, you're in the midst of exploring the MRTK core building blocks. Отсюда вы можете перейти к следующему стандартному блоку:From here, you can continue to the next building block:

Или перейдите к возможностям и API платформы смешанной реальности:Or jump to Mixed Reality platform capabilities and APIs:

Вы можете в любой момент вернуться к этапам разработки для Unity.You can always go back to the Unity development checkpoints at any time.

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