SDK agnostic method to render all controllers

Hello, I’m wanting to implement motion controller meshes in my XR project, and not sure the best way to go about it. I’d like to be able to accommodate all of the common controllers (Touch 1.0/2.0, Vive Wand, WMR, Knuckles, etc) with ideally as little work as possible. I know that SteamVR has the ability to render the controllers automatically, but I’d like my project to not rely on SteamVR (so that it could be built for Oculus Store/Quest).

So far my best option seems to be using SteamVR if OpenVR SDK is being used, and if Oculus is being used implement a system manually to display the Touch 1.0 or 2.0. I’m not the biggest fan of this, since so far it’s been unnecessary to have SteamVR at all (using the new input system + UnityEngine.XR has handled everything we’ve needed). Is there any way to display render models without going down that path?

Thanks,
Erik

I use hands myself, but get a mesh and material and attach it to the gameobject with the tracked pose driver for the appropriate hand. You can even use a staging project and move the mesh and materials from the steam package to your project so you don’t have to add it to your current.

Hey dwatt, we’re not having an issue getting a mesh to follow the controllers (this is pretty straightforward), but rather how to load a device specific model, similar to how SteamVR does it, but without requiring SteamVR (since then we could not build for Oculus Quest).

add child nodes for each one and use a script to select which to turn on is how I did it.

There’s no good way – you have to manually copy in models for every controller you’d like to support, and then guess on the controllers connected based on the headset model.