Open Flutterish opened 2 years ago
The new input system is intentionally designed to not allow raw access to inputs. The idea seems to be that any rebinding is done through the SteamVR menu. If I remember right, once you load the manifest, it will disable the legacy input system in favor for the new one.
That's a shame. So I guess what I have to do is provide a new action set with a bunch optional actions, which then could be bound to the dynamically loaded game mode actions by the user in my own binding menu. Ideally I wouldn't have to use this new set and just reuse the standard actions such as clicking or vector2 scrolling, but you can't really predict what custom game modes might need.
Yeah, having a set of optional actions is probably the best solution. This seems to be a big limitation with abstracted inputs like this, both with SteamVR and OpenXR.
I'm writing an app which uses the new input system, but I would also like to have access to raw input, so the users can bind controller buttons and such to custom game mode actions (which are loaded at runtime, so I have no way to define them in the action manifest). I thought using
Prop_SupportedButtons_Uint64
andGetControllerState
would provide me that, but it seems they reflect the actions defined in my action manifest. In a new project, I didn't declare any manifest, but steamVR still loaded its "legacy bindings", which resulted in 4 buttons on my controller. However, if done very quickly, before the first call toGetControllerState
and before the default manifest loads,Prop_SupportedButtons_Uint64
gives me 6 buttons, presumably the raw ones (because there are 6 physical button-like elements on my controller), so I assume what I ask for is possible, but I can't find how to do it.