Sguardo da capo in UnityHead-gaze in Unity

Lo sguardo è il modo principale per consentire agli utenti di individuare gli ologrammi creati dall'app in realtà mista.Gaze is the primary way for users to target holograms your app creates in Mixed Reality.

Implementazione dell'Head-sguardiImplementing head-gaze

A livello concettuale, è possibile determinare lo sguardo a capo proiettando un raggio dall'auricolare dell'utente per verificarne il risultato.Conceptually, you determine head-gaze by projecting a ray forward from the user's headset to see what it hits. In Unity, la posizione e la direzione della testa dell'utente vengono esposte tramite la fotocamera, in particolare UnityEngine. camera. Main. Transform. inoltr e UnityEngine. camera. Main. Transform. Position.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.

La chiamata a Physics. RayCast fornisce un RaycastHit che contiene informazioni sulla collisione, tra cui il punto di collisione 3D e l'altro GameObject il raggio d'occhio.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.

Esempio: implementare l'Head-sguardiExample: 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
       }
}

Procedure consigliateBest practices

Mentre l'esempio precedente genera una singola Raycast dal ciclo di aggiornamento per trovare la destinazione a cui punta l'utente, si consiglia di usare un singolo oggetto per gestire tutti i processi con lo sguardo a capo.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. Combinando la logica di puntamento, la potenza di elaborazione dell'app viene salvata e il Raycasting viene limitato a uno per fotogramma.Combining your head-gaze logic will save your app precious processing power and limit your raycasting to one per frame.

Visualizzazione dell'Head-sguardiVisualizing head-gaze

Analogamente a quanto avviene con un puntatore del mouse su un computer, è necessario implementare un cursore che rappresenti l'Head-sguardi dell'utente.Just like with a mouse pointer on a computer, you should implement a cursor that represents the user's head-gaze. Conoscere il contenuto di destinazione di un utente aumenta la fiducia nell'interazione con.Knowing what content a user is targeting increases confidence in what they're about to interact with.

Head-sguardi nel Toolkit per la realtà mistaHead-gaze in the Mixed Reality Toolkit

È possibile accedere a Head-sguardi da Gestione input in MRTK.You can access head-gaze from the Input Manager in MRTK.

Successivo checkpoint di sviluppoNext Development Checkpoint

Se si sta seguendo il percorso di sviluppo di Unity, si sta per esplorare i blocchi predefiniti di MRTK 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. Da qui, è possibile passare al blocco predefinito successivo:From here, you can continue to the next building block:

In alternativa, passare alle API e funzionalità della piattaforma di realtà mista:Or jump to Mixed Reality platform capabilities and APIs:

È sempre possibile tornare ai checkpoint per lo sviluppo con Unity in qualsiasi momento.You can always go back to the Unity development checkpoints at any time.

Vedere ancheSee also