1

Input.touches[0].position在 Unity3D 上使用时遇到问题。抱歉,如果问题不清楚,我觉得有点难以描述。

当我开始触摸屏幕并且非常缓慢地开始移动手指时,返回的位置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 回答