统一按下键不断变化

时间:2019-02-18 22:03:09

标签: c# unity3d

我正在尝试使用get键,按Enter键,然后它将用户名和密码发送到后端。我该如何禁止人们按Enter键,或者做一些可以做到这一点的功能,即使用户按Enter键,该功能也不再运行,因为它实际上已经成功了。

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并在调试日志中看到某些内容。第一次按该按钮,然后按Enter时,我怎么办?

1 个答案:

答案 0 :(得分:0)

为什么不使用bool标志检测玩家是否按下了按钮,并且仅在后端返回true后才更改其值?

类似的东西:

private bool tryingLogin; //property in the script

void Update(){

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

然后,当后端返回true / false时,可以再次将tryingLogin设置为false。 您还可以使用一个对象来管理登录,因此不必每次都调用该函数。