如何两次或多次使用相同的输入

时间:2018-09-11 13:29:51

标签: c# unity3d

在这里输入我的密码

 void Update()
{

    if (Input.GetKeyDown(KeyCode.Space))
    {
        ContinueDialog();
        Cursor.lockState = CursorLockMode.Locked;
    }

}

我想两次或多次使用空格输入来访问我的其他功能吗?

3 个答案:

答案 0 :(得分:2)

您可以在代码的其他位置使用相同的功能。 Input.GetKeyDown()函数在按下键的第一帧返回true,如下所示: https://docs.unity3d.com/ScriptReference/Input.GetKeyDown.html

答案 1 :(得分:1)

我不确定我是否正确回答了您的问题,但我会尽力帮助您:)

您可以这样操作:

void Update()
{

    if (Input.GetKeyDown(KeyCode.Space))
    {
        ContinueDialog();
        Cursor.lockState = CursorLockMode.Locked;
    }
    if (Input.GetKeyDown(KeyCode.Space))
    {
        OtherMethod();
    }

}

或者我更喜欢在陈述中使用其他方法:

void Update()
    {

        if (Input.GetKeyDown(KeyCode.Space))
        {
            OtherMethod();
            ContinueDialog();
            Cursor.lockState = CursorLockMode.Locked;
        }

    }

答案 2 :(得分:1)

您有两种选择来执行其他操作。

您可以在if语句内添加循环:

void Update()
{

    if (Input.GetKeyDown(KeyCode.Space))
    {
        int count = 1;
        while(count < <desired number of iterations>){
            ContinueDialog();
            Cursor.lockState = CursorLockMode.Locked;
            count++;
        }
    }
}

您可以使用带开关的循环:void Update(){

void Update()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        int count = 1;
        while(count < <desired number of iterations>)
        {
            switch(count)
            {
                case 1: 
                    ContinueDialog();
                    Cursor.lockState = CursorLockMode.Locked;
                    count++;
                    break;

                case 2: 
                    otherFunction();
                    count++;
                    break;

                case 3: 
                    thirdFunction();
                    count++;
                    break;
            }
        }   
    }
}

您可以使用自定义处理程序来处理input.KeyDown事件。