единство нажмите клавишу постоянное изменение - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь использовать клавишу «get», нажмите «ввод», после чего он отправит имя пользователя и пароль на сервер.Как я могу отключить людей, нажимающих клавишу ввода, или сделать что-то, что может сделать это, даже если пользователь нажмет клавишу ввода, функция больше не будет работать сама по себе, потому что на самом деле она уже успешна.

public void OnPressConfirmUser()
{
    string username = Username.GetComponent<InputField>().text;
    string password = Password.GetComponent<InputField>().text;
    userRegister.PostUser(username, password);

    if (userRegister.Proceed())
    {
        UserInfoUI.SetActive(false);
    }
}

void Update()
{
    if (Input.GetKeyDown(KeyCode.Return))
    {
        OnPressConfirmUser();
    }
}

Впервыеэто работает, и оно переходит в другое меню, в котором нет этих двух полей ввода, и теперь я все еще могу нажать Enter и увидеть что-то в моем журнале отладки.Как я могу сделать, когда вы в первый раз нажимаете эту кнопку, а затем даже нажимаете ввод, ничего не происходит?

1 Ответ

0 голосов
/ 19 февраля 2019

Почему бы вам не использовать флаг bool, чтобы определить, нажал ли игрок кнопку, и изменить его значение только после того, как бэкэнд вернет true?

Что-то вроде:

private bool tryingLogin; //property in the script

void Update(){

    if (Input.GetKeyDown (KeyCode.Return) && !tryingLogin) {
        tryingLogin = true;
        OnPressConfirmUser ();
    }
}

Тогда, когда вашbackend возвращает true / false, вы можете снова установить значение tryLogin в false.У вас также может быть объект для управления входом в систему, поэтому вам не нужно каждый раз вызывать эту функцию.

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