How To Use SteamVR 2.0 Features With The New Unity XR Toolkit (Bindings, Skeletons)

With the release of the new Unity XR Toolkit, a lot of developers such as myself were concerned with the lack of support for the SteamVR plugin and the features it gives us like the bindings system and Skeletons. But recently Valve has released its own plugin for XR that adds in native XR support for Steam VR but many were still thought that this did not add back in features such as bindings and skeletal input, and they’re right. The OpenVR XR plugin does not support these features… on its own. Valve has also released a new version of the Steam VR plugin that has XR support. So let’s walk through and learn how to install them.

Downloads

First we are going to want to download the XR branch of the steamVR plugin here: https://github.com/ValveSoftware/steamvr_unity_plugin/tree/UnityXRPlugin

Download the project as a zip and unzip it to a location you can remember.

Next we need the version of SteamVR that will support XR (v2.6.0b1), The version currently on the asset store (v2.5.0) does not so we also need to download this from git: https://github.com/ValveSoftware/steamvr_unity_plugin/releases/tag/2.6.0b1

Download the .unitypackage and we are ready to start installing things.

Importing and Installation

Now we start installing things, it is very important to do this in the right order or the SteamVR plugin will not detect the new OpenVR plugin (probably because it’s not there) and will just function just as it normally would through the old deprecated OpenVR system.

First make sure that deprecated VR is turned off in the players setting, then install the XR Interaction Toolkit and then the XR Plugin Management package if it is not automatically installed by the interaction toolkit.

Second, we need to import the OpenVR plugin you unzipped earlier through the package manager, we need to do this instead of just moving in the files manually because it allows the XR Plugin manager to access it. Do do this go to the package manager and click the plus button in the top left and select from disk:

navigate to the unzipped OpenVR plugin that you downloaded earlier and select the package.json file inside of it, this should automatically install the package and you should now see it in the XR plugin manager. Now we just need to enable it by clicking the box in the XR plugin manager:

Now the final thing we need to do is add in the SteamVR plugin through the Unitypackage that we downloaded earlier, just double click the file and it should open up in unity and you will be able to just click through the installation process like normal. After this, we just need to do one more thing.

In the Assets -> SteamVR_Resources -> Resources folder that just got installed there is a scriptable object that holds the settings for the SteamVR plugin. One of these settings is Auto Enable VR, we need to turn this off or it is going to try to enable the deprecated open VR system at runtime, and as the new XR system disables this setting it causes the project to crash. Disable the setting and you should be ready to go.

One thing to keep in mind is that the steam VR camera rig doesn’t work anymore because cameras are no longer auto tracked to the headset, you can fix this by adding a tracked pose driver to the camera object. Other than that everything should work seamlessly just like it did before XR. (Except for the bugs keeping in a preview state, good luck)

Liked it? Take a second to support WireWhiz on Patreon!
Become a patron at Patreon!