/// <inheritdoc /> public bool CheckCapability(MixedRealityCapability capability) { if (WindowsApiChecker.IsMethodAvailable( "Windows.UI.Input.Spatial", "SpatialInteractionManager", "IsSourceKindSupported")) { #if WINDOWS_UWP switch (capability) { case MixedRealityCapability.ArticulatedHand: case MixedRealityCapability.GGVHand: return(SpatialInteractionManager.IsSourceKindSupported(SpatialInteractionSourceKind.Hand)); case MixedRealityCapability.MotionController: return(SpatialInteractionManager.IsSourceKindSupported(SpatialInteractionSourceKind.Controller)); } #endif // WINDOWS_UWP } else { if (!UnityEngine.XR.WSA.HolographicSettings.IsDisplayOpaque) { // HoloLens supports GGV hands return(capability == MixedRealityCapability.GGVHand); } else { // Windows Mixed Reality immersive devices support motion controllers return(capability == MixedRealityCapability.MotionController); } } return(false); }
/// <inheritdoc /> public override bool CheckCapability(MixedRealityCapability capability) { if (WindowsApiChecker.IsMethodAvailable( "Windows.UI.Input.Spatial", "SpatialInteractionManager", "IsSourceKindSupported")) { #if WINDOWS_UWP switch (capability) { case MixedRealityCapability.ArticulatedHand: case MixedRealityCapability.GGVHand: return(SpatialInteractionManager.IsSourceKindSupported(SpatialInteractionSourceKind.Hand)); case MixedRealityCapability.MotionController: return(SpatialInteractionManager.IsSourceKindSupported(SpatialInteractionSourceKind.Controller)); } #endif // WINDOWS_UWP } else // Pre-Windows 10 1903. { if (XRSDKSubsystemHelpers.DisplaySubsystem != null && !XRSDKSubsystemHelpers.DisplaySubsystem.displayOpaque) { // HoloLens supports GGV hands return(capability == MixedRealityCapability.GGVHand); } else { // Windows Mixed Reality immersive devices support motion controllers return(capability == MixedRealityCapability.MotionController); } } return(false); }