Platformmogelijkheden detecteren — MRTK2
Een veelgestelde vraag van MRTK houdt in dat u weet welk specifiek apparaat (bijvoorbeeld Microsoft HoloLens 2) wordt gebruikt om een toepassing uit te voeren. Het identificeren van de exacte hardware kan lastig zijn op verschillende platforms. In plaats daarvan biedt de MRTK een manier om specifieke mogelijkheden tijdens runtime te identificeren (bijvoorbeeld als het huidige apparaateindpunt gelede handen ondersteunt).
Functies
De Mixed Reality Toolkit biedt de MixedRealityCapability
opsomming, waarmee een set mogelijkheden wordt gedefinieerd waarop een toepassing tijdens runtime query's kan uitvoeren.
Invoersysteemmogelijkheden
Het standaard MRTK-invoersysteem ondersteunt het uitvoeren van query's op de volgende mogelijkheden:
Mogelijkheid | Beschrijving |
---|---|
ArticulatedHand | Gelede handinvoer |
EyeTracking | Gericht op ogen staren |
GGVHand | Gaze-Gesture-Voice handinvoer |
MotionController | Invoer van bewegingscontroller |
Spraakopdracht | Spraakopdrachten met door de app gedefinieerde trefwoorden |
VoiceDictation | Spraak-naar-tekst dicteren |
Met de onderstaande voorbeeldcode wordt gecontroleerd of het invoersysteem een gegevensprovider heeft geladen met ondersteuning voor gelede handen.
bool supportsArticulatedHands = false;
IMixedRealityCapabilityCheck capabilityCheck = CoreServices.InputSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck != null)
{
supportsArticulatedHands = capabilityCheck.CheckCapability(MixedRealityCapability.ArticulatedHand);
}
Mogelijkheden voor ruimtelijk bewustzijn
Het standaard MRTK Spatial Awareness-systeem ondersteunt het uitvoeren van query's op de volgende mogelijkheden:
Mogelijkheid | Beschrijving |
---|---|
SpatialAwarenessMesh | Ruimtelijke meshes |
SpatialAwarenessPlane | Ruimtelijke vlakken |
SpatialAwarenessPoint | Ruimtelijke punten |
In dit voorbeeld wordt gecontroleerd of het systeem voor ruimtelijk bewustzijn een gegevensprovider heeft geladen met ondersteuning voor ruimtelijke meshes.
bool supportsSpatialMesh = false;
IMixedRealityCapabilityCheck capabilityCheck = CoreServices.SpatialAwarenessSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck != null)
{
supportsSpatialMesh = capabilityCheck.CheckCapability(MixedRealityCapability.SpatialAwarenessMesh);
}