Search Issue Tracker

Fixed in 1.1-preview

Votes

2

Found in [Package]

0.9.0-preview

Issue ID

1230756

Regression

No

[Input System][Mobile] EnhancedTouch screen taps start with "Moved" or "Stationary" phase instead of "Began"

Package: Input System

-

How to reproduce:
1. Open the user-supplied project
2. Build for iOS/Android and deploy the application on an iOS/Android device
3. Tap the screen with one, two or three fingers and observe the Xcode Console or the white box on the screen

Expected result: Input System EnhancedTouch taps start in "Began" phase
Actual result: more than half of the taps start in "Moved" or "Stationary" phase

Reproducible with:
1. 0.9.0-preview (Unity 2020.2.0a5, 2020.1.0b5, 2019.3.9f1)
2. 1.0.0-preview.6 (Unity 2020.2.0a5, 2020.1.0b5, 2019.3.9f1)

Could not test with:
1. Input System package versions 0.2.10-preview and older due to Console errors
2. Unity versions 2017.4 and 2018.4 due to the Input System package not being available

Reproduces on:
VLNQA00160 iPhone 6S iOS 13.3.1
N/A, Samsung Galaxy S9 (SM-G960F), Android 8.0.0, CPU: Exynos 9 Series 9810, GPU: Mali-G72
VLNQA00313, Huawei Y6 Ⅱ Compact (HUAWEI LYO-L01), Android 5.1, CPU: MediaTek MT6735, GPU: Mali-T720
VLNQA00140, Samsung Galaxy S4 (GT-I9505), Android 5.0.1, CPU: Snapdragon S4 Plus MSM8960, GPU: Adreno (TM) 320

Could not test on:
VLNQA00183 iPad Mini iOS 9.3.5 due to Xcode error -402620391 (no valid application signature)

  1. Resolution Note (fix version 1.1-preview):

    Fix in flight: https://github.com/Unity-Technologies/InputSystem/pull/1180. Expected to roll out in 1.1.

    Made the behavior properly match the old input system here. EnhancedTouch will now force a touch to always have a Began even if it began and moved in the same frame.

    One important thing to be aware of is that the state of UnityEngine.Input.touches does *NOT* necessarily have to match that of Touch.activeTouches. The reason is that on some platforms (notably Android), input from the UI is gathered on a separate thread and fed to the input system via a threaded background event queue. As the new and the old input system run at different times, that means that the touch events available at the respective points in time need not be identical.

Comments (1)

  1. Frolky

    May 01, 2023 07:31

    The problem is still relevant for WebGL

Add comment

Log in to post comment