首页 > 解决方案 > unity 按键 不断变化

问题描述

我正在尝试使用 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 并在我的调试日志中看到一些东西。当你第一次按下那个按钮时,我怎么能做到,然后即使你按下回车,也没有任何反应?

标签: c#unity3d

解决方案


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

就像是:

private bool tryingLogin; //property in the script

void Update(){

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

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


推荐阅读