1

Input.touches[0].positionUnity3D での使用に問題があります。問題が不明確な場合は申し訳ありませんが、説明するのはやや難しいと思います。

画面に触れ始めて指をゆっくりと動かし始めると、返された位置がInput.touches[0].positionすぐには変わらず、少し動かさなければならず、現在のタッチ位置にジャンプします。

これはiPhoneで発生します。他のタッチデバイスはありません。

これを説明するテスト可能なコードを次に示します。

using System;
using UnityEngine;

// attach this to a game object on the scene
public class TestTouch : MonoBehaviour
{
    private void Update()
    {
        if (Input.touchCount == 1)
        {
            // you have to add a GUIText component to the gameobject
            this.guiText.text = "pos: " + Input.touches[0].position;
        }
    }
}
4

3 に答える 3

0

あなたの問題は、初期のジェスチャー検出プロセスによって引き起こされていると思います。質問が解決するかどうかはわかりませんが、これを試してください:

if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Stationary)
{
    // Do sth.
}
于 2013-05-03T05:03:09.887 に答える
0

連続したタッチ位置が必要な場合は、これを使用します。

-(void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
   if(touches.count>0)
   {
      UITouch *touch = [touches anyObject];
      CGPoint touchPoint = [touch locationInView:self];
      NSLog("Touch position at (%4.2f|%4.2f)",touchPoint.x,touchPoint.y);
   }
}
于 2013-05-03T05:12:10.563 に答える
0

最後に、位置の最初の変化である最初のデルタを無視します。これで問題はかなり解決します。

于 2013-05-05T13:16:08.473 に答える