Hi,
I’ve recently updated our project to use the New Input System to be able to support various Mfi controllers on iOS, tvOS and Mac. Most of this works perfectly well.
I have run into a blocker issue though: On tvOS the MENU button on a Nimbus controller is not always registered as pressed. It is only registered 1/20 times I press it.The odd thing is that all other inputs from this controller works fine. Just the MENU button doesn’t. If I press it multiple times in a row it exits the app, which is as expected. When I press it I can also see the light on the tvOS console light up, so I know it’s received the input. I also tried the same Nimbus controller on some other games on the same apple TV, and it works fine.
In contrast, when I connect XBox Wireless or Dualshock controllers they work perfectly well and the Select/Options buttons work as expected, and so does the Siri remote’s MENU button (using a custom iOSGameController state mapping as described in a another post). All of these layouts use the same iOSGameController device class, so they use the same underlying backend system right? And this is based on GCController implementations (I guess)? If so, then they should all have the MENU/Options buttons work the same way, which is what confuses me.
I added a listener to the InputUser.onUnpairedDeviceUsed, and can see that this event is not always fired for the InputControl hooked up to that button (it’s a ButtonControl). When it is fired, I receive the event ok. Is there perhaps a way I can debug this to see if this is a problem with the state update or a setup issue?
Other things I tried:
- Adding a new ButtonControl to the state layout that reads it’s value from the float[ ] array instead of the uint bit map
- Created a new layout for the Nimbus created in the same way as the Siri Remote solution
- Reading the value directly from the InputControl as a float
- Reading the value directly from the InputControl via IsPressed method
- Added Bindings tot he MENU action for the specific controller I created, rather than just the generic Gamepad one.
- Manual update method for input system in Update on my monobehaviour
None of these worked.
I would really appreciate any tips/help with this, thanks.