SpatialGestureRecognizer Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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 | |
ManipulationCompleted | |
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. |