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