It seems like I’m unable to fire off actions from the vive wand’s touchpad, either pressed or touched. I’ve noticed that the path in the action editor looks like: <ViveWand>/trackpadPressed
However, in the input debugger the name of the inputs tied to joystickorpadpressed and joystickorpadtouched
I am able to get it to work by switching the path to:
<XRInputV1::HTC::OpenVRControllerViveControllerMVLeft>/joystickorpadpressed
But, I can only add this after entering playmode once, and if my controller disconnects or I restart the editor I get errors when opening the action editor saying that path doesn’t exist, and nothing renders in it. So, I’m guessing that’s not the intended solution. Is this just something wrong with my setup or something? Any help would be great!
All tracked controllers are broken for me too since preview1, I’m sure there is a fix coming but couldn’t get an answer yet
HI folks, please raise a bug so we can look at / track this
as much info as you can provide @Supercannon / @Jichaels would be great.
Hello!
So this was an omission on my part that I will be fixing today, and sending down that shipping pipe. I’m sorry to have caused this regression. In the meantime, I can offer a workaround solution while the official solution gets there.
You seem to be familiar with the input debugger and some of the layouts, so I’ll start by explaining how the XR layouts work. Every time a new device in XR connects, it inherits or extends from the declared layout. In your case XRInputV1::HTC::OpenVRControllerViveControllerMVLeft inherits from such that it has all the declared controls, but is also able to any additional controls at the time of connection. This allows us to debug and use devices not declared in the input system, and allows manufacturer’s to extend the capabilities of their devices out of band from the Input System updates, and then the Input System layouts can catch up.
One thing that’s happened recently, is that we are creating a new XR Architecture (see XR Plugins and Subsystems page-2#post-5056034). This change has caused some of the backing control names to change. To solve this, I needed a single input device layout to be able to match to multiple names, but always be referenceable as something consistent between as many controllers as possible (e.g. it’s nice if /Trigger works for all devices that have triggers).
So we have aliases. This file (InputSystem/Packages/com.unity.inputsystem/InputSystem/Plugins/XR/Devices/OpenVR.cs at stable · Unity-Technologies/InputSystem · GitHub) contains the layouts for Vive devices. Depending on the source of the device, a ViveWand’s trackpadPressed could be called trackpadPressed, ‘Primary2DAxisClick’ or, as you’ve discovered ‘joystickorpadpressed’. The Layout currently doesn’t know to match that name to the ‘trackpadPressed’ control, and so to fix that you can look at the declaration (line 131 of the previously linked file).
[InputControl(aliases = new[] { "primary2DAxisClick" })]
[Preserve]
public ButtonControl trackpadPressed { get; private set; }
And change it to:
[InputControl(aliases = new[] { "primary2DAxisClick", “joystickorpadpressed” })]
[Preserve]
public ButtonControl trackpadPressed { get; private set; }
This will associate that input feature with the ‘trackpadPressed’ control. You may need to do this for any control association that I messed up. Due to some transition between the two backends, those extra aliases got dropped, and I will be doing a pass to correct them all in the official package.
I actually already sent 2 cases : 1191646 and 1190144.
Thanks !
I’m currently working with the InputSystem preview 3 and the problem still exists.
The “trackpadPressed” doesn’t work on our Vive controllers.