Как использовать один и тот же вход дважды или более - PullRequest
0 голосов
/ 11 сентября 2018

Вот мой код

 void Update()
{

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

}

Я хочу использовать пробел дважды или больше для доступа к моей другой функции, есть ли способ?

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Вы можете использовать ту же функцию в других местах вашего кода. Функция Input.GetKeyDown () возвращает true для первого кадра, на котором нажата клавиша, как показано здесь: https://docs.unity3d.com/ScriptReference/Input.GetKeyDown.html

0 голосов
/ 11 сентября 2018

У вас есть пара опций для выполнения дополнительных действий.

Вы можете добавить цикл внутри оператора 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 с помощью пользовательского обработчика.

0 голосов
/ 11 сентября 2018

Я не уверен, правильно ли я понял ваш вопрос, но я стараюсь вам помочь:)

Вы можете сделать это следующим образом:

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;
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...