In 30fps, android build when I tap the input will be registered as holding the button for up to 0.5 sec depending on rng even if the tap is “instant”. It doesn’t happen on higher fps.
Also I can replicate it in editor in simulation mode and I noticed something strange. When I have selected the event system object, the bug dissapears! All touches are registered correctly however when I select different object or no object at all the bug returns.
Any way to fix it?
Are you perhaps processing input in FixedUpdate?
Could you share the input handling code that fails?
It’s on standard update. I execute code based on the phase of touch. As mentioned there is no issue with the code as it works perfectly fine when I select the events system object or use higher fps.
In particular, the issue with selecting events system object does it ring a bell?
Yet the issue could still be with your code. That it works under high fps is an indicator. The selection I have no idea but perhaps this triggers the selected object to be updated more frequently. I’m thinking it could be a delta time issue.
How does the behaviour change if you set Application.targetFramerate = 30 upon launch / enter playmode?
I set target framerate to 30 at the first frame of the game and that’s how I see the issue.
The code is really straightforward, I simply check the touch phase during regular update.
Adding debug log, for 30fps I can see that the phase repeats around 10+ times starting with “Began” then few times “Stationary” then “Ended”.
For 60fps, it only repeats 3-4 times which is counterintuitive as the 10+ times on 30fps is like 20+ times on 60fps so it completely doesn’t make sense.
For 30fps I can achieve 3 repetitions (begin, stationary and ended) when I select the eventsystem object…
Check either the Project Settings or the EventSystem component. I believe that you can set the Input System update mode globally and perhaps that is set to FixedUpdate.