实现C#Android Touch输入阻抗或超时 - Unity

时间:2016-04-30 15:25:46

标签: c# android input unity3d touch

美好的一天,

我正在尝试制作点击游戏,但是,一次触摸产生的输出量是连续的。

如何每次点击一次输出而不是...... 100?

if (Input.touchCount == 1 && idle == true) 
{
p = true; 
pSound.Play(); 
Debug.Log("Tap"); 
} 
else if (Input.touchCount == 0) 
{ 
p = false; 
} 

1 个答案:

答案 0 :(得分:0)

那不是Input.touchCount的用途。 Touch.tapCount是用来检测水龙头的东西。您需要从Input.touches获取所有触摸,然后将其作为数组保存到Touch结构中。然后遍历每次触摸并检查哪一个已调用已结束的event。在那里,您可以查看Touch.tapCount

void Update()
{
    Touch[] touchScreen = Input.touches;
    int touchScreenSize = touchScreen.Length;
    for (int i = 0; i < touchScreenSize; i++)
    {
        if (touchScreen[i].phase == TouchPhase.Ended)
        {
            if (touchScreen[i].tapCount == 1)
            {
                pSound.Play();
                Debug.Log("Tap");
            }
            else if (touchScreen[i].tapCount == 0)
            {

            }
        }
    }
}