Sguardo fisso — MRTK2

Lo sguardo fisso è una forma di input che interagisce con il mondo in base alla posizione in cui l'utente sta cercando. Lo sguardo fisso esiste in due tipi diversi

Puntamento con la testa

Questo tipo di sguardo fisso si basa sulla direzione che la testa/fotocamera sta guardando. Lo sguardo fisso della testa è attivo nei sistemi che non supportano lo sguardo fisso o nei casi in cui l'hardware può supportare lo sguardo fisso, ma il set corretto di autorizzazioni e configurazione non è stato eseguito.

Lo sguardo fisso della testa è in genere associato alle interazioni di stile holoLens 1 che coinvolgono l'analisi dell'oggetto posizionandolo al centro del frame olografico e quindi eseguendo il movimento di tocco dell'aria.

Tracciamento oculare

Questo tipo di sguardo fisso si basa sulla posizione in cui si trovano gli occhi dell'utente. Lo sguardo fisso è presente solo nei sistemi che supportano il tracciamento oculare. Per altre informazioni su come usare lo sguardo fisso, vedere la documentazione sul tracciamento oculare .

GazeProvider

La funzionalità sguardo fisso (sia testa che occhio) viene fornita da GazeProvider. Questo provider può essere configurato nella sezione Puntatore del profilo di sistema di input:

Punto di ingresso di Configurazione sguardo fisso

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

È possibile sostituire lo stock GazeProvider con un'implementazione alternativa modificando il tipo di provider di sguardo fisso per fare riferimento a una classe diversa che implementa IMixedRealityGazeProvider e IMixedRealityEyeGazeProvider. È in genere consigliabile usare lo stock GazeProvider (e inviare problemi durante la ricerca di bug) perché la ri-implementazione di GazeProvider non è semplice.

Pose alternative dello sguardo fisso fornito dalla piattaforma

Per impostazione predefinita, MRTK GazeProvider usa il centro del fotogramma della fotocamera come origine dello sguardo fisso. Alcune piattaforme, ad esempio Windows Mixed Reality su HoloLens 2, forniscono una posa dello sguardo in alternativa definita. Questa operazione viene gestita tramite l'impostazione Use Head Gaze Override nelle impostazioni dello sguardo fisso. Se abilitata, verrà usato l'override alternativo dello sguardo fisso. Se disabilitato, verrà usata l'origine del centro fotogrammi predefinita. In particolare, per HoloLens 2, l'angolo dello sguardo verrà alzato di diversi gradi per tenere conto del comfort dell'utente nell'uso della testa per la destinazione.

Utilizzo

Come ottenere la destinazione dello sguardo fisso corrente

Questo esempio mostra come ottenere l'oggetto gioco corrente di destinazione dallo sguardo fisso 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 fisso corrente

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

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

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