Detección de funcionalidades de plataforma: MRTK2
Una pregunta común que se hace sobre MRTK implica saber qué dispositivo específico (por ejemplo, Microsoft HoloLens 2) se usa para ejecutar una aplicación. La identificación del hardware exacto puede ser difícil en distintas plataformas. En su lugar, MRTK proporciona una manera de identificar funcionalidades específicas en tiempo de ejecución (por ejemplo, si el punto de conexión del dispositivo actual admite manos articuladas).
Funcionalidades
El kit de herramientas de Mixed Reality proporciona la MixedRealityCapability
enumeración , que define un conjunto de funcionalidades para las que una aplicación puede consultar en tiempo de ejecución.
Funcionalidades del sistema de entrada
El sistema de entrada de MRTK predeterminado admite la consulta de las siguientes funcionalidades:
Capacidad | Descripción |
---|---|
ArticulatedHand | Entrada de mano articulada |
EyeTracking | Objetivo de la mirada con los ojos |
GGVHand | Entrada de mano mirada-gesto-voz |
MotionController | Entrada del controlador de movimiento |
VoiceCommand | Comandos de voz mediante palabras clave definidas por la aplicación |
VoiceDictation | Dictado de voz a texto |
El código de ejemplo siguiente comprueba si el sistema de entrada ha cargado un proveedor de datos con compatibilidad con manos articuladas.
bool supportsArticulatedHands = false;
IMixedRealityCapabilityCheck capabilityCheck = CoreServices.InputSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck != null)
{
supportsArticulatedHands = capabilityCheck.CheckCapability(MixedRealityCapability.ArticulatedHand);
}
Funcionalidades de reconocimiento espacial
El sistema de reconocimiento espacial de MRTK predeterminado admite la consulta de las siguientes funcionalidades:
Capacidad | Descripción |
---|---|
SpatialAwarenessMesh | Mallas espaciales |
SpatialAwarenessPlane | Planos espaciales |
SpatialAwarenessPoint | Puntos espaciales |
En este ejemplo se comprueba si el sistema de reconocimiento espacial ha cargado un proveedor de datos con compatibilidad con mallas espaciales.
bool supportsSpatialMesh = false;
IMixedRealityCapabilityCheck capabilityCheck = CoreServices.SpatialAwarenessSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck != null)
{
supportsSpatialMesh = capabilityCheck.CheckCapability(MixedRealityCapability.SpatialAwarenessMesh);
}