Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实现C#Android触摸输入电阻或超时-统一_C#_Android_Input_Unity3d_Touch - Fatal编程技术网

实现C#Android触摸输入电阻或超时-统一

实现C#Android触摸输入电阻或超时-统一,c#,android,input,unity3d,touch,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; } 这不是Input.touchCount的用途触摸。点击计数用于检测点击。您需要从

你好

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

如何使每个抽头有一个输出而不是…100

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

这不是
Input.touchCount
的用途<代码>触摸。点击计数用于检测点击。您需要从
Input.toucks
获取所有触摸,然后将其作为数组保存到
Touch
struct。然后在每次触摸上循环,检查调用了ended
事件的是哪一个。在那里,您可以检查是否有
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)
            {

            }
        }
    }
}
void Update()
{
触摸[]触摸屏=输入。触摸;
int touchScreenSize=触摸屏长度;
对于(int i=0;i
这不是
Input.touchCount
的用途<代码>触摸。点击计数
用于检测点击。您需要从
Input.toucks
获取所有触摸,然后将其作为数组保存到
Touch
struct。然后在每次触摸上循环,检查调用了ended
事件的是哪一个。在那里,您可以检查是否有
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)
            {

            }
        }
    }
}
void Update()
{
触摸[]触摸屏=输入。触摸;
int touchScreenSize=触摸屏长度;
对于(int i=0;i
学习如何正确提问。为什么要将代码放在注释部分?修复了问题(b)既然您将代码从注释部分移动到了问题部分,您可以进一步解释您的问题吗?重新措辞,并解释你想做什么以及它目前正在做什么。还可能包括运行代码的位置、启动或更新函数。因此,如果我在android上使用unity remote运行代码,当我快速触摸屏幕时,控制台会打印4个“点击”。我想让它在抬起手指后才能识别敲击声。学习如何正确提问。为什么要将代码放在注释部分?修复了问题(b)既然您将代码从注释部分移动到了问题部分,您可以进一步解释您的问题吗?重新措辞,并解释你想做什么以及它目前正在做什么。还可能包括运行代码的位置、启动或更新函数。因此,如果我在android上使用unity remote运行代码,当我快速触摸屏幕时,控制台会打印4个“点击”。我希望它只在手指抬起后才能识别水龙头。好的,这样我就可以检查我是否有多个水龙头。但是,由于每次点击后都不会重新启动,因此p=true是一致的。在if语句中每次触摸后是否需要重置数组?@itsPav您的问题是
idle==true
。我不知道这是怎么回事,我也不明白你想在那里实现什么。我删除了它并更新了代码。它应该可以工作,你不需要重置任何东西。复制新代码。该代码缺少p=true,不幸的是,即使在我完成点击后,它也不会关闭。我已经把它添加到我的脚本中,同样的问题。有一个公共bool可以检查p,我用按钮成功地完成了这项工作,它在将手指从按钮上抬起后将其关闭,但在屏幕上点击是困难的。@itsPav您最初的问题是每帧检测到的触摸次数太多。比如说20次。我答案中的代码修复了这一点。它只检测一次轻敲(当手指抬起时)。检查debug.Log,您将看到。你在问题中描述的就是我在这里解决的问题。不管你想做什么,我不知道…@itsPav,如果你能学会如何命名变量就好了。P这并不能说明什么。这个问题解决了。您可以创建另一个新问题并描述您遇到的新问题。如果我了解你的新问题,我可能会有所帮助。好的,通过这个,我可以检查我是否有多个水龙头。但是,由于每次点击后都不会重新启动,因此p=true是一致的。在if语句中每次触摸后是否需要重置数组?@itsPav您的问题是
idle==true
。我不知道这是怎么回事,我也不明白你想在那里实现什么。我删除了它并更新了代码。它应该可以工作,你不需要重置任何东西。复制新代码。该代码缺少p=true,不幸的是,即使在我完成点击后,它也不会关闭。我已经把它添加到我的脚本中,同样的问题。有一个公共bool可以检查p,我用按钮成功地完成了这项工作,它在将手指从按钮上抬起后将其关闭,但在屏幕上点击是困难的。@itsPav您最初的问题是每帧检测到的触摸次数太多。比如说20次。我答案中的代码修复了这一点。它只检测一次轻敲(当手指抬起时)。检查debug.Log,您将看到。你在问题中描述的就是我在这里解决的问题。不管你想做什么,我不知道…@itsPav,如果你能学会如何命名变量就好了。P这并不能说明什么。这个问题解决了。您可以创建另一个新问题并描述您遇到的新问题。如果我了解你的新问题,我可能会有所帮助。