Related to: XR device (Oculus) starts unpaired in Unity's new input system - Stack Overflow
XR Plugin Management 4.0.1
Input System 1.0.2
Oculus Quest 2 through Oculus Link
TrackedPoseDriver (New Input System) works out of the box. However, the controller inputs through PlayerInput simply refused to work. The Input Debugger revealed that it was not paired to User #0.
I tried manually pairing with InputUser.PerformPairingWithDevice(XRController.rightHand, inputSystemPlayerInput.user); in Start() but that returned an error that XRController.rightHand was null.
Now I’m using ContextMenu to call the pairing function manually after my controller has been connected (by moving it around first). However, this is obviously not an ideal solution. Am I missing a better method for doing this?
Edit: Just reworked my Action Map to use Control Schemes, but it still doesn’t work. The Control Scheme defaults to Keyboard, then when I move my Oculus controllers around (connecting them in the Input Debugger), then pressing a non-noisy button, it does not automatically switch to the VR Control Scheme.
Edit edit: Here’s the new XR pairing code if you use Control Schemes. For editor only, still not sure how to implement this in the build.
[ContextMenu("Pair XR Device")]
public void PairXrDevice() {
inputSystemPlayerInput.SwitchCurrentControlScheme("VR", XRController.leftHand, XRController.rightHand);
}