Обнаружение возможностей платформы — MRTK2

Часто задаваемый вопрос о MRTK заключается в том, чтобы узнать, какое конкретное устройство (например, Microsoft HoloLens 2) используется для запуска приложения. Определение точного оборудования может быть сложной задачей на разных платформах. Вместо этого MRTK предоставляет способ определения конкретных возможностей во время выполнения (например, если конечная точка текущего устройства поддерживает шарнирные руки).

Возможности

Набор средств Смешанная реальность предоставляет перечисление MixedRealityCapability , определяющее набор возможностей, для которых приложение может запрашивать во время выполнения.

Возможности системы ввода

Система ввода MRTK по умолчанию поддерживает запросы к следующим возможностям:

Функция Описание
ArticulatedHand Ввод с шарнирной рукой
EyeTracking Нацеливание взгляда
GGVHand Ввод с помощью жеста взгляда и голосового ввода
MotionController Входные данные контроллера движения
VoiceCommand Голосовые команды с использованием ключевых слов, определенных приложением
VoiceDictation Диктовка для преобразования голоса в текст

Приведенный ниже пример кода проверяет, загрузила ли система ввода поставщик данных с поддержкой шарнирных рук.

bool supportsArticulatedHands = false;

IMixedRealityCapabilityCheck capabilityCheck = CoreServices.InputSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck != null)
{
    supportsArticulatedHands = capabilityCheck.CheckCapability(MixedRealityCapability.ArticulatedHand);
}

Возможности пространственной осведомленности

Система отслеживания пространственного положения MRTK по умолчанию поддерживает запросы к следующим возможностям:

Функция Описание
SpatialAwarenessMesh Пространственные сетки
SpatialAwarenessPlane Пространственные плоскости
SpatialAwarenessPoint Пространственные точки

В этом примере проверяется, загрузила ли система пространственной осведомленности поставщик данных с поддержкой пространственных сеток.

bool supportsSpatialMesh = false;

IMixedRealityCapabilityCheck capabilityCheck = CoreServices.SpatialAwarenessSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck != null)
{
    supportsSpatialMesh = capabilityCheck.CheckCapability(MixedRealityCapability.SpatialAwarenessMesh);
}

См. также раздел