如何得到两个相同的输入

本文关键字:两个 输入 何得 | 更新日期: 2023-09-27 18:11:36

我正在尝试创造一款Android游戏,但现在却在测试输入按键。我想做的是两次获得"正确"键,但不确定如何。下面是我的代码:

void Update () {
    if(Input.GetKeyDown("left"))
    {
        Debug.Log("in the left zone");
        isLeft = true;
    }
    if(Input.GetKeyDown("right"))
    {
        isRight = true;
        if(Input.GetKeyDown("right"))
        {
            isDoubleRight = true;
            isRight = false;
            Debug.Log("in the double right zone");
        }
    }
}

同样,同样的逻辑也适用于未来的触摸。它是否具有与键输入相同的逻辑?有什么建议吗?

如何得到两个相同的输入

我自己解决了,但不确定它是否正确。希望对大家有所帮助。

    if(Input.GetKeyDown("right") && isRight)
    {
        isDoubleRight = true;
        isRight = false;
        Debug.Log("in the double right zone");
    }
    else if(Input.GetKeyDown("right"))
    {
        isRight = true;
    }

first

你自己的回答没有检测到"双击"…它只是切换一个变量每秒钟按下。

更正你的代码的双重按:

using UnityEngine;
using System.Collections;
public class ButtonTest : MonoBehaviour {
    float timeOut = 0.25f;
    float timeLimit; // the latest time a double-press can be made
    string lastButton; // the name of the button last checked
    // an example of using "CheckDouble" is in here
    void Update (){
        if (Input.GetKeyDown("right")) CheckDouble("right");
    }
    // The function to check for double-presses of a given button
    bool CheckDouble (string newButton) {
        // if new button press is the same as last, AND recent enough
        if(newButton==lastButton && Time.time<timeLimit )
        {
            timeLimit=Time.time; // expires the double-press
            Debug.Log("Double Press");
            return true;
        }
        else
        {
            timeLimit = Time.time+timeOut; // set new Limit for double-press
            lastButton = newButton; // for future checks
            Debug.Log("Single Press (so far)");
            return false;
        }
    }
}

这与触摸/点击类似,但要记住:
就像这个函数检查每次按下的是同一个按钮…你还需要传递WHAT/WHERE被触摸/点击和比较-检查某人不只是单点/点击一个项目,然后在不久之后单点/点击一个不同的项目


进一步建议:

从某些东西(称为重载)获得两个相同的输入
系统(如android)有时使用"长按"(点击+按住)而不是双击,我将解释为什么:
想象一下桌面操作系统
1. "第一次点击"通常只是选择一些东西,或者插入一个(有时是假想的)光标。
2. "第二次点击"启动项目,突出显示单词,切换窗口等关键是,"第一次点击"仍然总是发生

为什么?

因为否则每次你点击一次(也许你在键盘上打字,或者只想选择一个东西),它将不得不等待,看看你是否要双击,然后再操作单点击。(反应迟缓)

相反,


有些系统使用长按。一旦按键/触摸被释放(onKeyUp/GetKeyUp);如果在超时时间内,它知道它是一个短按立即,如果它仍然在很长一段时间后,它执行长按动作

相关文章: