下記ソースでタッチイベントを受け付けています
if (Input.touchCount > 0) { for(int i=0;i<Input.touchCount;i++){ Touch touch = Input.GetTouch(i); if (touch.phase == TouchPhase.Began) { Vector3 touchDownPosition = touch.position; } if (touch.phase == TouchPhase.Ended) { Vector3 touchUpPosition = touch.position; float dis = Vector3.Distance(touchDownPosition,touchUpPosition); if(dis > 100f) //スワイプされた } } }
しかし、連打とスワイプの識別がうまくできません
うまくいかないケースは下記の通りです
1フレーム目
左指でX100Y150の位置を押す TouchPhase.Began
2フレーム目
左指でX100Y150の位置を押しつづけている
右指でX900Y150の位置を押す TouchPhase.Began
3フレーム目
左指を離す TouchPhase.Ended
右指でX900Y150の位置を押しつづけている
4フレーム目
右指を離す TouchPhase.Ended
上記のケースだと1番目のタッチ座標であった左指の位置が
左指を離すタイミングで右指がスクリーンを押し続けていれば
1番目のタッチ座標が押し続けている右指にさしかわり
右指が離されたときには左から右へスワイプされたという結果になります
連打とスワイプをうまく識別するにはどうすればよいでしょうか?
よろしくお願いします
あなたの回答
tips
プレビュー