Windows Mixed Reality

The Windows Mixed Reality platform supports various Headsets and Motion Controllers based on the Microsoft Mixed Reality platform.

Prerequisites

InstantVR

Windows Mixed Reality is not supported in InstantVR.

Humanoid Control

Windows Mixed Reality is supported in Humanoid Control VR, Plus and Pro packages.

Hardware

All Mixed Reality Headsets and Motion Controllers are supported

Operating System

Windows Mixed Reality is only supported on Microsoft Windows Fall Creators Editor or newer.

Unity

Unity 2017.2 or higher is required.

Setup

Ensure Universal Windows Platform is selected as platform in the Unity Build settings found in the File Menu.

Virtual Reality Supported needs to be enabled in Edit Menu->Project Settings->Player->XR Settings. Windows Mixed Reality needs to be added to the Virtual Reality SDKs.

For full Windows Mixed Reality support you needs to ensure Windows MR Support is enabled in Edit Menu->Preferences->Humanoid.

Disabling Windows MR Support ensures that no code related to Windows Mixed Reality is included in the build.

Targets

To enable Windows Mixed Reality tracking for an avatar, First Person Camera and Windows MR need to be enabled in the Humanoid Control component.

Head Target

Full positional and rotational tracking is supported.

Hand Targets

Full positional and rotational tracking is supported. Full positional tracking is only working when the controllers are visible by the cameras in the headset.

Controller input

The buttons of the Motion Controllers can be accessed using the Game Controller Input. The buttons are mapped as follows:

Left Controller
Touchpad controller.left.stickHorizontal/stickVertical
Touchpad touch controller.left.stickTouch
Stick movements controller.left.stickHorizontal/stickVertical
Stick press controller.left.stickButton
Trigger controller.left.trigger1
Grip controller.left.trigger2
Menu button controller.left.option
Right Controller
Touchpad controller.right.stickHorizontal/stickVertical
Touchpad touch controller.right.stickTouch
Stick movements controller.right.stickHorizontal/stickVertical
Stick press controller.right.stickButton
Trigger controller.right.trigger1
Grip controller.right.trigger2
Menu button controller.right.option

Calibration

The tracking position and orientation can be calibrated during gameplay by calling the Calibrate() function on the HumanoidControl object. This is often implemented using the Controller Input component.