- Home /
When iOS framerate lags, are TouchPhase.Begans getting lost?
I think they are. This is not good because I'm detecting 'swipes' for movements, and it is only in TouchPhase.Began that starts a swipe. I though every touch would have one frame in which its phase was "began".
But it seems like what happens is if it drops a couple of frames where the touch should have began, it goes straight from touch count 0 to the first recorded state being "Moved", as a result the swipe doesn't count, so the turn doesn't happen, so the player runs into something and dies- again- and says "omg this game sucks" and rates it one star and deletes it.
Can someone confirm that this is what's going on, and is there a better way to check for swipes that will always work?
Answer by whydoidoit · Jun 25, 2012 at 09:21 PM
Yeah I think you are right. I have a manager object that sends a began event if the phase is Began or I have a Move or a Stationary for a finger I have never seen before. Similarly I also do the same for Cancel if I am missing the fingerId and my last state was active.
It doesn't fully solve my problem but I've done some more reading and there are several people with similar solutions. But I'm writing up a bug report for this and I think everyone else who's had to code a workaround for the built in touch manager's sketchy performance should too. It should already be doing that, invisibly to the user.
Your answer
Follow this Question
Related Questions
TouchPhase.Began not detected. 2 Answers
How to move player once per swipe 2 Answers
Raycast when swipe or touchphase move 0 Answers
Get Touch touch phase began is grounded not working 2 Answers
Custom touch phase? 0 Answers