Blick — MRTK2

Das Anvisieren ist eine Form der Eingabe, die mit der Welt interagiert, je nachdem, wo der Benutzer sucht. Blick ist in zwei verschiedenen Varianten vorhanden

Anvisieren mit dem Kopf

Diese Art von Blick basiert auf der Richtung, die der Kopf/die Kamera betrachtet. Der Kopfausblick ist auf Systemen aktiv, die das Anvisieren nicht unterstützen, oder in Fällen, in denen die Hardware das Anvisieren unterstützen kann, aber die richtigen Berechtigungen und Einrichtung nicht ausgeführt wurden.

Der Kopfblick wird in der Regel mit Interaktionen im HoloLens 1-Stil verknüpft, die das Betrachten des Objekts umfassen, indem es in der Mitte des Holographic Frame platziert wird und dann die Luft tippen-Geste ausgeführt wird.

Blick auf die Augen

Diese Art von Blick basiert darauf, wo die Augen des Benutzers suchen. Der Blick ist nur auf Systemen vorhanden, die eye tracking unterstützen. Weitere Informationen zur Verwendung des Blicks finden Sie in der Eyetracking-Dokumentation .

GazeProvider

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

Einstiegspunkt für die Gaze-Konfiguration

Wie andere Eingabequellen interagiert der Blickanbieter mithilfe eines Zeigers mit Objekten in der Szene (Informationen zu Zeigern finden Sie in diesem Dokument). Im Fall des Anvisierens wird der Zeiger über InternalGazePointer implementiert und nicht über ein Profil konfiguriert.

Es ist möglich, den Aktien-GazeProvider durch eine alternative Implementierung zu ersetzen, indem der Anbietertyp "Gaze " geändert wird, um auf eine andere Klasse zu verweisen, die IMixedRealityGazeProvider und IMixedRealityEyeGazeProvider implementiert. Es wird im Allgemeinen empfohlen, den Aktien-GazeProvider zu verwenden (und Probleme bei der Fehlersuche in zu melden), da die erneute Implementierung von GazeProvider nicht trivial ist.

Alternative plattformseitig bereitgestellte Blickhaltungen

Standardmäßig verwendet der MRTK GazeProvider die Mitte des Kamerarahmens als Blickursprung. Einige Plattformen, z. B. Windows Mixed Reality auf HoloLens 2, bieten eine alternativ definierte Blickhaltung. Dies wird über die Use Head Gaze Override Einstellung in den Blickeinstellungen verwaltet. Wenn diese Option aktiviert ist, wird die alternative Blicküberschreibung verwendet. Wenn diese Option deaktiviert ist, wird der Standardframecenterursprung verwendet. Insbesondere für HoloLens 2 wird der Blickwinkel um mehrere Grad erhöht, um dem Benutzerkomfort bei der Verwendung des Kopfes für das Targeting Rechnung zu tragen.

Verwendung

Abrufen des aktuellen Blickziels

In diesem Beispiel wird gezeigt, wie Sie das aktuelle Spielobjekt abrufen, das vom Benutzer anvisiert wird.

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

Abrufen der aktuellen Blickrichtung und des Aktuellen Ursprungs

In diesem Beispiel wird gezeigt, wie sie den Vector3 abrufen, der die Richtung des Anvisierens des Benutzers und den Ursprung (den Punkt darstellt, von dem aus die Richtung verläuft).

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

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