Sguardo fisso

Sguardi è un tipo di input che interagisce con il mondo in base alla posizione dell'utente. Lo sguardo esiste in due diverse varianti

Puntamento con la testa

Questo tipo di sguardi è basato sulla direzione che la testa/fotocamera sta osservando. Il punto di vista del controllo è attivo nei sistemi che non supportano gli sguardi, oppure nei casi in cui l'hardware può supportare gli sguardi, ma il set di autorizzazioni e l'installazione corretti non sono stati eseguiti.

Lo sguardo a capo è in genere associato alle interazioni di stile HoloLens 1 che coinvolgono l'oggetto, inserendolo al centro del frame olografico e quindi eseguendo il movimento del rubinetto d'aria.

Tracciamento oculare

Questo tipo di sguardi è basato sulla posizione in cui si trovano gli occhi dell'utente. Eye sguardi è presente solo nei sistemi che supportano il rilevamento degli occhi. Per informazioni dettagliate su come usare gli occhi, vedere la documentazione relativa a Eye Tracking .

GazeProvider

La funzionalità di sguardi (sia Head che Eye) viene fornita da GazeProvider. Questo provider può essere configurato nella sezione puntatore del profilo di sistema di input:

EntryPoint configurazione sguardo

Analogamente ad altre origini di input, il provider di sguardi interagisce con gli oggetti nella scena tramite l'uso di un puntatore (vedere questo documento per informazioni sui puntatori). Nel caso del provider di sguardi, il relativo puntatore viene implementato tramite InternalGazePointer e non è configurato tramite un profilo.

È possibile sostituire il GazeProvider di magazzino con un'implementazione alternativa modificando il tipo di provider di sguardi per fare riferimento a una classe diversa che implementa IMixedRealityGazeProvider e IMixedRealityEyeGazeProvider. È in genere consigliabile usare il GazeProvider di magazzino (e i problemi di archiviazione durante la ricerca dei bug) perché la riimplementazione di GazeProvider non è semplice.

Pose mirate della piattaforma alternative

Per impostazione predefinita, MRTK GazeProvider usa il centro del frame della fotocamera come origine dello sguardo. Alcune piattaforme, ad esempio la realtà mista di Windows in HoloLens 2, forniscono uno sguardo definito in modo alternativo. Questa operazione viene gestita tramite l' Use Head Gaze Override impostazione nelle impostazioni di sguardi. Quando è abilitata, verrà usato l'override di sguardi alternativi. Se questa opzione è disabilitata, verrà utilizzata l'origine di frame Center predefinita. In particolare, per HoloLens 2, l'angolo dello sguardo verrà generato da diversi gradi per tenere conto del comfort degli utenti nell'uso della loro testa per la destinazione.

Utilizzo

Come ottenere la destinazione dello sguardo corrente

In questo esempio viene illustrato come ottenere l'oggetto Game corrente di destinazione dello sguardo dell'utente.

void LogCurrentGazeTarget()
{
    if (CoreServices.InputSystem.GazeProvider.GazeTarget)
    {
        Debug.Log("User gaze is currently over game object: "
            + CoreServices.InputSystem.GazeProvider.GazeTarget)
    }
}

Come ottenere la direzione e l'origine dello sguardo corrente

In questo esempio viene illustrato come ottenere l'oggetto Vector3 che rappresenta la direzione dello sguardo dell'utente e l'origine (il punto da cui la direzione sta per essere).

void LogGazeDirectionOrigin()
{
    Debug.Log("Gaze is looking in direction: "
        + CoreServices.InputSystem.GazeProvider.GazeDirection);

    Debug.Log("Gaze origin is: "
        + CoreServices.InputSystem.GazeProvider.GazeOrigin);
}