- Unity 2019.3 or newer
- For 6DoF to function you will need an ARKit capable or ARCore capable phone.
- An MR headset like one of our Aryzon Headsets.
Note this SDK will also function with any VR Google Cardboard headset, however for 6DoF to work your phone's camera will need to be able to 'see' the environment. Many headsets block the camera.
To get started for Unity follow the steps in the link below, however you will have to choose a different package URL and you should not enable Cardboard in XR Plugin Management. See the 3 steps below the link for further explanation.
Google Cardboard Quickstart with Unity
Navigate to Window -> Package Manager.
- Choose to add the Google Cardboard XR Plugin with 6DoF support package from a Git URL. Enter this instead of the one Google provides in the URL above:
https://github.com/Aryzon/cardboard-xr-plugin.git
This is based on our fork from the Google Cardboard SDK. You do not have to import the samples from this package. - Add the Aryzon MR Headset Unity SDK package from this Git URL:
https://github.com/Aryzon/unity-sdk.git
- Import the samples from the Aryzon MR Headset Unity SDK package. (Unfold Samples -> Import).
- Use 3 degrees of freedom tracking when the user position is steady and the user cannot walk around. Follow the 3DoF instructions to get rotational tracking only.
- Use 6 degrees of freedom tracking when the user should be able to walk around. Follow the 6DoF steps to get rotational and positional tracking.
- In Player Settings -> Other Settings add this to the Camera Usage Description:
Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
- Open the Rotational Tracking scene in Assets -> Samples.
- You can now build and run this scene.
- Add ARFoundation through the package manager from the Unity Registry. Make sure to use ARFoundation 3.0 or newer otherwise the ARPoseDriver cannot be found.
- In the player settings head over to XR Plugin Management, select ARKit or ARCore according to your target platforms. This should automatically install the package from the package manager for you.
Important: DO NOT select Cardboard. - In Player Settings -> Other Settings add this to the Camera Usage Description:
Camera usage is required for AR and the Cardboard SDK requires camera permission to read a QR code (required to get the encoded device parameters).
- Open the ARFoundation Tracking scene in Assets -> Samples.
- You can now build and run this scene.
You can simply add Aryzon support to an existing ARFoundation scene like one of the official samples or any other scene. Do the following:
- Add the Aryzon and AryzonInputController prefabs to the scene from Packages -> Aryzon MR Headset Plugin -> Runtime -> Prefabs.
- Make sure there is an EventSystem in the scene.
- ARFoundation only: on the Aryzon GameObject set 'ARFoundation' as the tracking engine.
- ARFoundation only: on the ARSession GameObject deselect 'Match Frame Rate'.
Note: ARSession has an option 'Match Frame Rate', by default this option is selected, however it should not be selected when building for Aryzon headsets. Most Android phones run ARCore at only 30 fps. Selecting this option causes the stereoscopic view to run at 30 fps as well. Since rotation is updated at 60 fps (or even more) we should disable this option.
Yes that's right, you can add Aryzon support to a Microsoft Mixed Reality Toolkit project! This gives you access to all the great stuff the Microsoft Mixed Reality Toolkit has to offer and turns your phone into a HoloLens (well almost).
- Start out with a MRTK scene like one of the Examples. For instance use the HandInteractionExample scene from the MRTK Examples package.
- Convert the MRTK project so it runs on your phone in 2D by following the steps in this link.
- Set the update type of the UnityARCameraSettingsProfile you just added to 'Before Render'.
- Add the Aryzon prefab from Packages -> Aryzon MR Headset Plugin -> Runtime -> Prefabs
- Add an AR Session GameObject to the scene. GameObject -> XR -> ARSession
- Deselect 'Match Frame Rate' on the AR Session GameObject.
Use our wireless controller to provide input to the MRTK input system. This gives 'Tap' functionality similar to the HoloLens 1. With this you are able click buttons, move/scale/rotate objects and more. Import this package and add the AryzonMRTKController prefab to the scene.
If you have a bluetooth controller or the Aryzon Controller you can add this in Aryzon mode. Make sure you have the AryzonInputController or AryzonMRTKController in your scene:
- Enter Aryzon mode in the app select Settings.
- Tap on ‘Listen’
- Click the button you want to use on the controller as a ‘reticle click’.
Some bluetooth controllers require to be set in a different mode in order to be recognised. Please refer to the devices manual on how to do that.
Mixed reality usually requires some form of interaction or alignment with the physical world. In order to get good optical results the SDK has a calibration menu to align the virtual and physical world. You can enable this at runtime on the phone in Aryzon Mode. Go to Settings and select Show calibration menu.
X: Horizontal shift
Y: Vertical Shift
Z: Forward Shift
The settings above move the position of the virtual camera relative to the user. When changing these settings you will notice movement of virtual objects that are close by. Objects that are far away do not move as much.
IPD: Interpupillary distance
This setting is user dependent, it is the distance between the pupils in the eyes of the user. The virtual camera renders two images from slightly different positions, depending on the IPD. Changing this setting has most effect on objects that are close by. It makes these objects appear closer by or farther away.
ILD: Inter lens distance
This setting changes how far apart the images are rendered on screen. It is different from IPD since this effects the entire image, not just the objects that are close by. It makes all objects appear closer by or farther away.