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);
}

Weitere Informationen