实现 C# Android 触摸输入阻力或超时 - Unity

Implementing C# Android Touch Input Resistance or Timeout - Unity

美好的一天,

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

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

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

这不是 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)
            {

            }
        }
    }
}