Blick – MRTK2

Gaze ist eine Form von Eingaben, die mit der Welt interagieren, basierend auf dem Ort, an dem der Benutzer sucht. Die Blicke sind in zwei verschiedenen Aromen vorhanden.

Anvisieren mit dem Kopf

Dieser Blicktyp basiert auf der Richtung, die der Kopf/die Kamera betrachtet. Der Kopfblick ist auf Systemen aktiv, die den Augenblick nicht unterstützen oder in Fällen, in denen die Hardware Augenblicke unterstützen kann, aber die richtige Gruppe von Berechtigungen und Setup wurde nicht ausgeführt.

Der Kopfblick ist in der Regel mit HoloLens 1-Stilinteraktionen verknüpft, die das Objekt betrachten, indem er in der Mitte des Holographic Frame platziert wird und dann die Luft tippgeste ausführt.

Augenblick

Dieser Blicktyp basiert darauf, wo die Augen des Benutzers aussehen. Der Augenblick ist nur auf Systemen vorhanden, die Augenverfolgung unterstützen. Sehen Sie sich die Dokumentation zur Augenverfolgung an, um weitere Details zur Verwendung von Augenblicken zu erhalten.

GazeProvider

Die Blickfunktion (sowohl Kopf als auch Auge) wird vom GazeProvider bereitgestellt. Dieser Anbieter kann im Zeigerabschnitt des Eingabesystemprofils konfiguriert werden:

Gaze Configuration Entrypoint

Wie andere Eingabequellen interagiert der Blickanbieter mit Objekten in der Szene, indem er einen Zeiger verwendet (siehe dieses Dokument für Informationen zu Zeigern). Im Falle des Blickanbieters wird der Zeiger über InternalGazePointer ein Profil implementiert und nicht über ein Profil konfiguriert.

Es ist möglich, den Stock GazeProvider durch eine alternative Implementierung zu ersetzen, indem der Gaze-Anbietertyp geändert wird, um auf eine andere Klasse zu verweisen, die IMixedRealityGazeProvider und IMixedRealityEyeGazeProvider implementiert. Es wird im Allgemeinen empfohlen, den Stock GazeProvider (und die Einreichung von Problemen bei der Suche nach Fehlern) zu verwenden, da die Implementierung des GazeProviders nicht trivial ist.

Alternative Plattform-bereitgestellte Blick-Posen

Standardmäßig verwendet der MRTK GazeProvider die Mitte des Kamerarahmens als Blick origin. Einige Plattformen, wie Windows Mixed Reality auf HoloLens 2, bieten eine alternativ definierte Blickpose. Dies wird über die Einstellung in den Use Head Gaze Override Blickeinstellungen verwaltet. Wenn dies aktiviert ist, wird die alternative Blicküberschreibung verwendet. Wenn deaktiviert, wird der Standardframecenter-Ursprung verwendet. Insbesondere für HoloLens 2 wird der Blickwinkel mehrere Grad erhöht, um den Benutzerkomfort bei verwendung ihres Kopfes für die Zielrichtung zu berücksichtigen.

Verwendung

So erhalten Sie das aktuelle Blickziel

In diesem Beispiel wird gezeigt, wie Sie das aktuelle Spielobjekt abrufen, das von der Benutzeranzeige gezielt wird.

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

So erhalten Sie die aktuelle Blickrichtung und den Ursprung

In diesem Beispiel wird gezeigt, wie sie den Vector3-Wert abrufen, der die Richtung des Benutzerblicks und den Ursprung darstellt (der Punkt, aus dem die Richtung geht).

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

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