SpatialGestureRecognizer Klasse

Definition

Interpretiert Benutzerinteraktionen von Händen, Motion Controllern und Systemstimmebefehlen zur Anzeige räumlicher Gestenereignisse, auf die Benutzer mit ihrem Blick oder dem Zeigestrahl eines Bewegungscontrollers abzielen.

public ref class SpatialGestureRecognizer sealed
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Input.Spatial.ISpatialGestureRecognizerFactory, 131072, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 131072)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SpatialGestureRecognizer final
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Input.Spatial.ISpatialGestureRecognizerFactory), 131072, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 131072)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class SpatialGestureRecognizer
function SpatialGestureRecognizer(settings)
Public NotInheritable Class SpatialGestureRecognizer
Vererbung
Object Platform::Object IInspectable SpatialGestureRecognizer
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10586.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v2.0)

Hinweise

Räumliche Gesten sind eine wichtige Form der Eingabe für Mixed Reality Headsets wie HoloLens. Durch das Weiterleiten von Interaktionen vom SpatialInteractionManager an das SpatialGestureRecognizer eines Hologramms können Apps Tap-, Hold-, Manipulations- und Navigationsereignisse gleichmäßig über Hände, Sprache und Bewegungscontroller hinweg erkennen.

Beachten Sie, dass für Eingaben von Gamepads, Tastaturen oder Mäusen keine räumlichen Gesten erkannt werden.

SpatialGestureRecognizer führt nur die minimale Mehrdeutigkeit zwischen den angeforderten Gesten aus. Wenn Sie z. B. einfach tippen anfordern, kann der Benutzer seinen Finger so lange gedrückt halten, wie er möchte, und es wird weiterhin tippen. Wenn Sie sowohl Tippen als auch Halten anfordern, wird die Geste nach etwa einer Sekunde gedrückter Finger zu halten heraufgestembt, und ein Tippen wird nicht mehr ausgeführt.

Um SpatialGestureRecognizer zu verwenden, behandeln Sie das InteractionDetected-Ereignis von SpatialInteractionManager, und greifen Sie auf die SpatialPointerPose , die dort verfügbar gemacht wird. Verwenden Sie den Blickstrahl des Benutzers aus dieser Pose, um sich mit den Hologrammen und Oberflächengittern in der Umgebung des Benutzers zu überschneiden, um zu bestimmen, mit was der Benutzer interagieren möchte. Leiten Sie dann die SpatialInteraction in den Ereignisargumenten mithilfe der CaptureInteraction-Methode an das SpatialGestureRecognizer des Ziel-Hologramms weiter. Dies beginnt mit der Interpretation dieser Interaktion gemäß den SpatialGestureSettings , die für diese Erkennung bei der Erstellung oder durch TrySetGestureSettings festgelegt sind.

Bei der Ausrichtung auf eine räumliche Interaktion, z. B. eine Handgeste, eine Bewegungscontroller-Druck- oder Sprachinteraktion, sollten Apps basierend auf der Art der SpatialInteractionSource der Interaktion einen aus dem SpatialPointerPose der Interaktion verfügbaren Zeigerstrahl auswählen:

  • Wenn die Interaktionsquelle das Zeigen nicht unterstützt (IsPointingSupported ist false), sollte die App basierend auf dem Blick des Benutzers als Ziel verwendet werden, das über die Head-Eigenschaft verfügbar ist.
  • Wenn die Interaktionsquelle das Verweisen unterstützt (IsPointingSupported ist true), kann die App stattdessen basierend auf der Zeigerposition der Quelle als Ziel verwendet werden, die über die TryGetInteractionSourcePose-Methode verfügbar ist.

Die App sollte dann den ausgewählten Zeigestrahl mit ihren eigenen Hologrammen oder mit dem räumlichen Zuordnungsgitter überschneiden, um Cursor zu rendern und zu bestimmen, womit der Benutzer interagieren möchte.

Für Anwendungen, die das Eingabemodell gaze-and-commit verwenden, insbesondere auf HoloLens (erste Generation), kann SpatialGestureRecognizer verwendet werden, um zusammengesetzte Gesten zu aktivieren, die auf dem Select-Ereignis basieren. Durch das Weiterleiten von Interaktionen vom SpatialInteractionManager an das SpatialGestureRecognizer eines Hologramms können Apps Tap-, Hold-, Manipulations- und Navigationsereignisse gleichmäßig über Hände, Sprache und räumliche Eingabegeräte hinweg erkennen, ohne dass Sie Drucke und Freigaben manuell verarbeiten müssen.

Konstruktoren

SpatialGestureRecognizer(SpatialGestureSettings)

Initialisiert ein neues SpatialGestureRecognizer mit den angegebenen Gesteneinstellungen.

Eigenschaften

GestureSettings

Ruft die aktuellen SpatialGestureSettings für diese Erkennung ab.

Methoden

CancelPendingGestures()

Bricht alle laufenden Gesten ab und verwirf alle erfassten Interaktionen.

CaptureInteraction(SpatialInteraction)

Verfolgen Sie alle Eingabeereignisse, die im Rahmen der angegebenen Interaktion auftreten.

TrySetGestureSettings(SpatialGestureSettings)

Versucht, die Gesteneinstellungen für diese Erkennung zu ändern.

Ereignisse

HoldCanceled

Tritt auf, wenn eine Haltegeste abgebrochen wird.

HoldCompleted

Tritt auf, wenn eine Haltebewegung abgeschlossen ist.

HoldStarted

Tritt auf, wenn eine Interaktion zu einer Haltegeste wird.

ManipulationCanceled

Tritt auf, wenn eine Manipulationsgeste abgebrochen wird.

ManipulationCompleted

Tritt auf, wenn eine Manipulationsgeste abgeschlossen ist.

ManipulationStarted

Tritt auf, wenn eine Interaktion zu einer Manipulationsgeste wird.

ManipulationUpdated

Tritt auf, wenn eine Manipulationsgeste aufgrund von Handbewegung aktualisiert wird.

NavigationCanceled

Tritt auf, wenn eine Navigationsgeste abgebrochen wird.

NavigationCompleted

Tritt auf, wenn eine Navigationsgeste abgeschlossen wird.

NavigationStarted

Tritt auf, wenn eine Interaktion zu einer Navigationsgeste wird.

NavigationUpdated

Tritt auf, wenn eine Navigationsgeste aufgrund von Hand- oder Bewegungscontrollerbewegungen aktualisiert wird.

RecognitionEnded

Tritt auf, wenn die Gestenerkennung aufgrund von Abschluss oder Abbruch einer Geste endet (dies ist das letzte ausgelöste Ereignis).

RecognitionStarted

Tritt auf, wenn die Gestenerkennung beginnt (dies ist das erste Ereignis, das ausgelöst wird).

Tapped

Tritt auf, wenn eine Tap- oder DoubleTap-Geste erkannt wird.

Gilt für:

Weitere Informationen