Обнаружение возможностей платформы — 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);
}