Ok, so I’m stuck again with no controller support in tvOS builds after upgrading to Unity 2020.3 LTS. It seems that 2020 does not have support for InputSystem 1.1.x packages. The most recent package available is 1.0.2.
The 1.0.2 package has a known issue where it does not initialize XInput or DualShock controller properly on tvOS. This issue was fixed in this PR and released in 1.1.0-preview.1 and has been working for almost a year now in Unity 2019. But after upgrading to 2020, the InputSystem package has been downgraded.
Should the 1.1.x packages be available in 2020?
If not can we get this fix backported to 1.0.x? The change is pretty straightforward.
Until one of the above is available I’m stuck again with needing to use my own custom package as a work around.
I figured out why I wasn’t seeing the 1.1.x packages in the Package Manager. It seems they are disabled by default in 2020.3 and must be enabled in Project Settings > Package Manager > Advanced Settings.
Unfortunately, all the 1.1.x preview packages have compile issues when building in xcode. It looks like 1.0.2 is the most recent working version for 2020.3.
Hello, I am also facing this issue in Unity 2019.2.21f1. Dual shock controller keys are working perfect in unity editor but not working in TV OS. Can anybody tell me how to fix this issue?
Thanks for your reply. Sorry I couldn’t understand Lurking-Ninja’s post correctly. Thanks for telling me again.
Can you please elaborate IOS version number? Is it the TV OS version? Also, I am not using any USB device to connect controller. I simply connect controller with the bluetooth of TV OS. The controller is working perfect in Unity Editor though but unfortunately not working in TV OS.
The new Input System does not work properly for tvOS.
The Apple Remote flat out isn’t supported, XBox and DS4 controllers are not working properly (see OPs post), things have been this way for over a year.
Thanks. So any other work around to map keys which can work properly on TV OS? Do i need to map keys explicitly for each controller? or is there any other way to do this?
There is a known bug in v1.0.2 on tvOS. I submitted a patch which was merged into the 1.1.x versions, however, the 1.1.x versions are still marked as ‘preview’ so will not show up in the package manager unless you explicitly enable preview packages. We had been using the 1.1.0-preview.3 verison of the package successfully in 2019, for most of the project, but when we switched to 2020, that package would no longer compile without errors. I have not yet tried again to get a v1.1.x version of the package working in 2020, but instead reverted to using a custom version of the package which I patched myself.
The Input System source code is available on GitHub and you can install packages from a Git repo, but it takes some effort to get that setup. We already had a custom patched repo setup while we waited on the original patch to get merge into the project and I ended up reverting back to that for the time being. Here’s the very simple patch if you decide to go down that route.
If you are still using the 2019 version of Unity than the 1.1.0-preview packages should work on tvOS. We had been using those for most of development until we updated to Unity 2020.
Sorry, I don’t know much about the legacy Unity input code that pre-dates the newer Input System package. My hunch is that the older version doesn’t have tvOS controller support at all. I think your best option would be to upgrade to Unity 2019.4 and use the version of the package I mentioned above.