Old vs. New Unity VR Setup
Laila Gamaleldin, March 2021
Unity changed how the VR input system is handled between its 2019 and its 2020 version. The VR input system for the 2019 version will be deprecated at some point, so it's advisable to use the new one. Regardless, below are set-up instructions for both versions:
2019 Setup
Open Unity Hub
Click the down arrow next to the button that reads 'New' and pick version 2019.4.19f1
If you are operating a later version of Unity, the instructions in this video may prove more relevant
Name your project and make sure to choose a 3D template before clicking 'Create'
Go to Window > Package Manager
Select the dropdown menu that reads advanced, and from there pick 'Show preview packages'
Scroll down to 'XR Interaction Toolkit' and click Install
Note: your project may potentially restart after this step, depending on your input system
Exit the Package Manager and go to Edit > Project Settings > Player
Under 'XR Settings', check off 'Virtual Reality Supported'
Make sure to also include all of the headset types you want to support
In Project Settings still, click on 'XR Plugin Management' and click install
Similarly, check off the boxes relevant to the headset(s) you'd like to support
Note: if you get a pop-up that looks like this, click Ok
Right-click the Main Camera, go under XR, and select 'Room-scale XR Rig (Action-based)'
At this point, your hierarchy should look as follows:
You're all set! Connect your headset and computer, strap the headset on, click play, and enjoy!
2020+ Setup
Open Unity Hub
Click the down arrow next to the button that reads 'New' and pick version 2020.2.4f1 or above
Name your project and make sure to choose a 3D template before clicking 'Create'
Go to Edit > Project Settings > XR Plugin Management
Click 'Install XR Plugin Management'
Check off the headset(s) you would like to support
Note: The new XR Input system introduced OpenXR Support. To enable that, follow the steps in this video starting at 2:37.
Go to Window > Package Manager
Click on the Settings Icon > Advanced Project Settings
Check off 'Enable Preview Packages'
You should get a pop-up here, click on 'I Understand'
Click out of the settings window
If you are not seeing packages that say 'Preview', click on 'Packages' in the top left of the window and make sure you have 'Unity Registry' checked off
Scroll down to 'XR Interaction Toolkit' and install it
To make sure you are using the new XR input system, navigate to Edit > Project Settings > Player > Other Settings. Under 'Active Input Handling', make sure it says 'Input System Package (New)' or 'Both'. Exit out of the window afterwards.
Right click in your Hierarchy, go to XR and click Room-Scale XR Rig (Action-based)
Go to Window > Package Manager. Click on 'XR Interaction Toolkit'
Click on 'Samples' and import 'Default Input Actions'. Exit out of the Package Manager.
Your newly installed packages should show up under your project's assets.
Click on 'XRI Default Left Controller'. In the Inspector, click on 'Add to ActionBasedController default'
Repeat the previous step with 'XRI Default Right Controller'.
Go to Edit > Project Settings > Preset Manager
Label each of the Presets with names like 'left' and 'right' by typing in the search box on the left
Delete your XR Rig and create it once again (right click under hierarchy, go to XR and then Room-Scale XR Rig (Action-Based)). This serves to update the action prefabs.
Finally, you need to enable the input action used by the controller.
Click on XR Rig and then click 'Add Component' and then search for and click 'Input Action Manager (Script)'
Click the plus sign under 'Action Assets'
Drag the 'XRI Default Input Actions' file under Assets into the slot by Element 0