Erkennen von Plattformfunktionen – MRTK2
Eine häufig gestellte Frage an MRTK besteht darin, zu wissen, welches bestimmte Gerät (z. B. Microsoft HoloLens 2) zum Ausführen einer Anwendung verwendet wird. Das Identifizieren der genauen Hardware kann auf verschiedenen Plattformen eine Herausforderung darstellen. Stattdessen bietet das MRTK eine Möglichkeit, bestimmte Funktionen zur Laufzeit zu identifizieren (z. B. wenn der aktuelle Geräteendpunkt artikulierte Hände unterstützt).
Funktionen
Das Mixed Reality Toolkit stellt die MixedRealityCapability
-Enumeration bereit, die eine Reihe von Funktionen definiert, für die eine Anwendung zur Laufzeit Abfragen ausführen kann.
Funktionen des Eingabesystems
Das MRTK-Standardeingabesystem unterstützt abfragen die folgenden Funktionen:
Funktion | BESCHREIBUNG |
---|---|
ArticulatedHand | Artikulierte Handeingabe |
EyeTracking (Blickverfolgung) | Anvisieren des Blicks |
GGVHand | Handeingabe "Gaze-Gesture-Voice" |
MotionController | Motion Controller-Eingabe |
VoiceCommand | Sprachbefehle mit von der App definierten Schlüsselwörtern |
VoiceDictation | Diktieren von Sprachsynthese |
Der folgende Beispielcode überprüft, ob das Eingabesystem einen Datenanbieter mit Unterstützung für artikulierte Hände geladen hat.
bool supportsArticulatedHands = false;
IMixedRealityCapabilityCheck capabilityCheck = CoreServices.InputSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck != null)
{
supportsArticulatedHands = capabilityCheck.CheckCapability(MixedRealityCapability.ArticulatedHand);
}
Funktionen für räumliches Bewusstsein
Das standardmäßige MRTK Spatial Awareness-System unterstützt die Abfrage der folgenden Funktionen:
Funktion | BESCHREIBUNG |
---|---|
SpatialAwarenessMesh | Räumliche Gitter |
SpatialAwarenessPlane | Räumliche Ebenen |
SpatialAwarenessPoint | Räumliche Punkte |
In diesem Beispiel wird überprüft, ob das Raumerkennungssystem einen Datenanbieter mit Unterstützung für räumliche Gitter geladen hat.
bool supportsSpatialMesh = false;
IMixedRealityCapabilityCheck capabilityCheck = CoreServices.SpatialAwarenessSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck != null)
{
supportsSpatialMesh = capabilityCheck.CheckCapability(MixedRealityCapability.SpatialAwarenessMesh);
}