MRTK 的常见问题涉及了解哪些特定设备 (例如:Microsoft HoloLens 2) 用于运行应用程序。 在不同平台上识别确切的硬件可能很有难度。 MRTK 提供一种在运行时识别特定功能的方式
输入系统功能
默认的 MRTK 输入系统支持查询以下功能:
功能 | 说明 |
ArticulatedHand | 关节手输入 |
EyeTracking | 眼睛视线定位 |
GGVHand | 视线-手势-语音手部输入 |
MotionController | 运动控制器输入 |
VoiceCommand | 使用应用定义的关键字发出语音命令 |
VoiceDictation | 语音到文本的听写 |
默认的 MRTK 空间感知系统支持查询以下功能:
功能 | 说明 |
SpatialAwarenessMesh | 空间网格 |
SpatialAwarenessPlane | 空间平面 |
SpatialAwarenessPoint | 空间点 |
此示例检查空间感知系统是否已加载支持空间网格的数据提供程序。
using Microsoft.MixedReality.Toolkit;
using UnityEngine;
public class CheckCapability : MonoBehaviour
{
private void CheckSupports()
{
//是否支持 骨骼关节手部输入
bool supportsArticulatedHands = false;
IMixedRealityCapabilityCheck capabilityCheck1 = CoreServices.InputSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck1 != null)
{
supportsArticulatedHands = capabilityCheck1.CheckCapability(MixedRealityCapability.ArticulatedHand);
}
//是否支持 空间感知网格
bool supportsSpatialMesh = false;
IMixedRealityCapabilityCheck capabilityCheck2 = CoreServices.SpatialAwarenessSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck2 != null)
{
supportsSpatialMesh = capabilityCheck2.CheckCapability(MixedRealityCapability.SpatialAwarenessMesh);
}
//是否支持 眼动追踪
bool supportsArticulatedEye = false;
IMixedRealityCapabilityCheck capabilityCheck3 = CoreServices.InputSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck3 != null)
{
supportsArticulatedEye = capabilityCheck3.CheckCapability(MixedRealityCapability.EyeTracking);
}
}
}