- Home /
How do android touch / mouse inputs get buffered?
I'm writing a game where the character moves as the player moves their finger on the screen - up as they scroll up, down as they scroll down, etc.
The behaviour I'm seeing is as follows:
When I first put my finger down (and don't move it), the player is stationary, as expected.
When I move a little bit up (say small amount X), then the player is still stationary. This is not expected.
When I move further (say large distance Y), then the player suddenly jumps (X+Y). After this point, if I move small distance X, the player does move by that mall amount as I'd expect.
So it seems that, after a touch commences, there's an element of buffering to see whether it's a true touch, rather than a tap, or something like that?
Furthermore, if I print out the "Mouse" location of the touch (using Input.mousePosition), I see the same thing: when the finger goes down, the new mouse position shows. When I move it slowly, it does not initially move, until I've moved it a certain distance at which point the reported position jumps and then moves as expected. So it may be this is an OS "feature" with both "Mouse" and "Touch" stuff abstracted on top by Unity, I'm not quite sure.
So - has anyone else seen this? And is there any way to turn it off / work round it that people know of?
Seen on Samsung S2 (and, FWIW, still android 3.x as I've not yet ported my code up).
Your answer
Follow this Question
Related Questions
Input.GetAxis("Vertical") on touch devices. 2 Answers
Touch command for GUIText on Android? OnMouseDown() for Android? 1 Answer
Touch Input help.. 1 Answer
TouchPhase not firing correctly - Android 3 Answers
Simulate touch with mouse 6 Answers