Delen via


Staren — MRTK2

Staren is een vorm van invoer die communiceert met de wereld op basis van waar de gebruiker naar op zoek is. Gaze bestaat in twee verschillende smaken

Hoofd staren

Dit type blik is gebaseerd op de richting waar het hoofd/de camera naar kijkt. Hoofd staren is actief op systemen die geen ondersteuning bieden voor oog staren, of in gevallen waarin de hardware mogelijk oog staren ondersteunt, maar de juiste set machtigingen en instellingen niet is uitgevoerd.

Hoofdblikken wordt meestal geassocieerd met holoLens 1-stijlinteracties waarbij naar het object wordt gekeken door het in het midden van het Holographic Frame te plaatsen en vervolgens de luchttikbeweging uit te voeren.

Ogen staren

Dit type blik is gebaseerd op waar de ogen van de gebruiker naar kijken. Ogen kijken is alleen aanwezig op systemen die oogtracering ondersteunen. Zie de documentatie voor oogtracering voor meer informatie over het gebruik van ogenkijken.

GazeProvider

Gaze-functionaliteit (zowel hoofd als oog) wordt geleverd door de GazeProvider. Deze provider kan worden geconfigureerd in de sectie Pointer van het invoersysteemprofiel:

Gaze Configuration Entrypoint

Net als andere invoerbronnen communiceert de gaze-provider met objecten in de scène door gebruik te maken van een aanwijzer (zie dit document voor informatie over aanwijzers). In het geval van de Gaze-provider wordt de aanwijzer geïmplementeerd via InternalGazePointer en niet geconfigureerd via een profiel.

Het is mogelijk om de voorraad GazeProvider te vervangen door een alternatieve implementatie door gaze providertype te wijzigen om te verwijzen naar een andere klasse die IMixedRealityGazeProvider en IMixedRealityEyeGazeProvider implementeert. Het wordt over het algemeen aanbevolen om de stock GazeProvider te gebruiken (en problemen in te dienen bij het vinden van bugs), omdat het opnieuw implementeren van de GazeProvider niet triviaal is.

Alternatieve door het platform geleverde kijkhoudingen

Standaard gebruikt de MRTK GazeProvider het midden van het cameraframe als de oorsprong van de blik. Sommige platforms, zoals Windows Mixed Reality op HoloLens 2, bieden een alternatief gedefinieerde kijkhouding. Dit wordt beheerd via de Use Head Gaze Override instelling in de gaze-instellingen. Wanneer deze optie is ingeschakeld, wordt de alternatieve gaze-onderdrukking gebruikt. Wanneer dit is uitgeschakeld, wordt de oorspronkelijke middenoorsprong van het standaardframe gebruikt. Specifiek voor HoloLens 2 wordt de kijkhoek enkele graden verhoogd om rekening te houden met het comfort van de gebruiker bij het gebruik van hun hoofd voor het richten.

Gebruik

Het huidige gazedoel ophalen

In dit voorbeeld ziet u hoe u het huidige gameobject kunt krijgen waarop de gebruiker zich richt.

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

Hoe de huidige kijkrichting en oorsprong te krijgen

In dit voorbeeld ziet u hoe u vector3 krijgt die de richting van de gebruiker aangeeft en de oorsprong (het punt van waaruit de richting gaat).

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

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