Greetings,
We’re running into a live issue on 1.0.2 (and upgrades to 1.1.1 haven’t helped) where taps are not immediately fired, but are somehow buffered and delivered later in a single update.
This is occurring on an existing live build which works on iOS 14 without issue.
Scenario
The user taps lightly on the screen, sometimes around the edges of an iPhone 12 or iPhone 13 device with iOS 15. The events are not being delivered via any input system action or even through legacy Input.touches.
A secondary tap seems to force both taps to push through the buffer and the subsequent events fire twice. We can breakpoint and see that we get both taps concurrently (with different finger ids).
Upgrades
We’ve tried upgrading to the latest LTS 2020 version, along with any of the 1.1.1 updates for the input package to no avail.
Any ideas?
[Solution]
For posterity sake, it appears this issue happens on devices without physical home buttons (like the iPhone 12 and 13) where they were upgraded to iOS 15. Ultimately the issue stems from UISystemGestureGateGestureRecognizer which will delay any input if it believes the user has an intent to invoke a system gesture.
You can resolve this by iterating over the gesture recognizers on the native window and setting the delaysTouchBegan and delaysTouchEnded or simply enable little-references Unity toggles in Player Settings Unity - Scripting API: PlayerSettings.iOS.deferSystemGesturesMode
A Few Notes
The same build worked on iOS 14 on the same devices. Which means there must have been a logical change in iOS 15 for these specific models or form factors that would cause a regression in behaviour. If your product previously worked in iOS 14 on these devices, you may see similar issues with iOS 15 simply because of the expected functionality of the UISystemGestureGateGestureRecognizer.
1 Like
@devon_redgames just to confirm, was this observable on any position on the screen or only near top/bottom corners?
AFAIK system gesture recognizers were only delaying taps next to top and bottom borders because they are waiting for user gesture swipe down or swipe up
@dmytro_at_unity This is occurring on all borders (even those without safe area) in and orientation on an iPhone 12 with iOS 15. The same build on the same device with iOS 14 does not have this issue.
1 Like
Some iPhone 13 and iOS 15 users affected by touch screen responsiveness bugs - 9to5Mac could be related, as we’re not aware of any new gesture handlers on left/right borders