Cross Platform VR Projects?

Hi All,

I’m trying to start a new VR project that needs to support the Quest and SteamVR. Has anyone been able to successfully develop for both platforms without a ton of separation?

I’ve spent the last few days untangling the web of available packages, native support, Asset Store plugins, etc and I feel like it’s just getting more confusing. Things that I thought were in beta less than a year ago have already been deprecated or marked “Legacy”, and old systems seem to be on their way out, replaced by preview packages.

I spent the last 9 months or so using the the SteamVR 2.0 SDK for a Vive project so I’m familiar with that integration, but since I only have a Quest at home and use Vives at work, I’d like to be able to build some things on the Quest (or Rift using the Link) when I don’t have access to a Vive, then push it up and test it on the Vive the next day.

The Unity XR Management package seems to work …okay for the Quest after importing the dependencies and resolving compiler errors. Unfortunately it doesn’t support OpenVR (yet?) and many have said that in fact it may cause issues when using the SteamVR 2.0 SDK’s input system.

VRTK v3 requires a deprecated version of the SteamVR SDK.

VRTK v4 is under construction and is not supporting OpenVR (yet?) since he’s funded by Oculus and focused on supporting their plugin.

I read on a thread in here that Unity (and Oculus) don’t want devs to have to use the Asset Store Oculus integration anymore, so I’m trying to avoid that if it’s not going to be updated.

I’m still confused by the OpenVR (Desktop) and Oculus (Android) and Oculus (Desktop) packages in the package manager - not sure what the use case would be for those. Also it sounds like they’ll be deprecated by 2020.1 so I’m inclined to stay away from that.

Has anyone successfully navigated this issue?

Thanks in advance!

Hi Blake! I’m in the similar situation as you. Have you figured it out yet?

Im starting a new VR project with unity 2019.3 to use HDRP, and would like to target Valve’s OpenVR. Its the only platform that encompasses all the others (Vive, Occulus, WMR, etc) but there doesnt seem to be any information from either valve or Unity as to what the correct way to do this currently is.

At the time I write this, There is no OpenVr plugin for the new XR system, and Unity is depreceating everything else.
Using the steamVR package on the asset store works but has abysmal performence with HDRP.

Hi Y2K!

At the moment, since I have no access to my work Vive for Coronavirus reasons :frowning: I’ve made the choice to start working with Unity’s XR Management package (using 2019.3.4f1 with XR Mgmt v3.0.6) since it works out of the box for the Quest without having to import any of Oculus’s plugins which have been a nightmare to use efficiently.

To help my future self port my current interaction system with the Quest over to SteamVR, I’ve taken inspiration from VRTK:

For each input that my game’s logic needs to listen to (trigger pulled/released beyond a threshold, button pressed/released), I’ve got a game object with a little script that broadcasts an event when it receives the associated values from the InputManager. Components in my game can just listen for that event instead of the input manager’s values directly.

When I start shifting over to SteamVR my plan is to hook up SteamVR 2.0’s actions to trigger those events as well and (hopefully) the game play and interactions will be exactly the same.

I’ll also have to write up a little logic on startup to determine which platform prefab to instance (one with a SteamVR Player and one with TrackedPoseDrivers) so the two tracking and input systems don’t have conflicts.

As far as HDRP goes, I’ve been working almost exclusively with LWRP/URP for the last year since VR hasn’t been well supported in HDRP, so I’m afraid I don’t have much advice to offer there, other than it might be a tad heavy on the Quest as I’m sure you’re aware.

It’s not fun but it’s working so far!

I’ve been dabbling with VR development for a couple years on and off. I haven’t taken the dive yet and tried to publish anything as everything has seemed like a cluttered clunky mess this entire time. Best advice I can give is try to plan your packages out ahead of time and make sure everything is compatible prior as to avoid hitting a wall but don’t take too long as you can see the VR stuff is rapidly changing still.

I’m unaware of the current state of VRTK as I stopped using it back when it seemed like it was at it’s end of life before they got the Oculus grant and I wasn’t looking to incorporate a separate 3rd party asset that I would be dependent on.

With that being said it appears now that Oculus is taking control over on the Unity side and working closely with them to update their packages and integrations as well as the docs even to show up to date information as well as allow for cross platform integration out of the box. So building on the Oculus SDK will work on steam and Vive headsets at some point if I understand what they said correctly. (If not someone please correct me with source links).

Quick update if anyone ever stumbles across this post:

What has been working fine so far for me is the tried and true old Asset Store Oculus Integration and SteamVR plugin using native VR settings in Unity 2019.3._. I’ve got input from each routed into global float and boolean actions to consolidate events. As for builds - I intend to make it so that my game detects the platform type on startup, but right now for simplicity I’m just making test builds with the target platform’s VR rig prefab enabled in the startup scene. Not elegant but simple is best for now.

Valve just put out a (preview?) of their OpenXR Unity plugin here. I haven’t tested it but I intend to soon in a fresh project. Documentation is sparse of course and it’s certainly not finished but I’m looking forward to when it’s production ready so we can finally consolidate XR plugins in Unity. :roll_eyes:

any updates on this ? how to develop cross platform for Quest , Rift & SteamVR ?

Thanks

@Ali_V_Quest A lot of us are waiting impatiently for the XR Interaction toolkit to get out of beta, with hopefully hand-control built it. That’s the best bet for cross platform development, IMHO. But Unity doesn’t offer much news about their development of it, alas.

1 Like

I guess the assetstore assets are a better choice right now

Most asset store assets actually fall back on the oculus integration and steam vr for stuff like hand tracking, which is at the moment really the only solution.

Hey parteypeople,

in all this confusing mess, I couldn’t find an answer to (what seems to be) a simple question: if I use the Oculus Plugin together with the Unity XR toolkit, will I be able to release my game on Steam? Or do I have to use the SteamVR/OpenXR plugin for that and the Oculus Plugin if I want to release it on the Oculus store (and of course they seem to be exlusive at the moment)?

I don’t want to spend months on a game that can’t be released anywhere…