首页 > 解决方案 > 即使Android本机键盘在屏幕上统一可见,如何单击UI按钮

问题描述

我正在设置一个登录页面,它有一个 TMP 输入字段和一个按钮(登录)(两者都位于屏幕顶部)。当单击该输入字段时,它会打开 android 本机键盘,在用户在该字段上输入他们的信息后,他们正在单击登录按钮并等待响应。这里发生的情况是,在他们输入详细信息后,他们在 android 本机键盘外单击并在登录按钮上(这都是单击而不是两次不同的单击),它关闭了 android 本机键盘,但不会触发登录按钮。但是用户不知道,所以请帮助我。

我需要的是:

如果 android 本机键盘打开并且用户单击登录按钮,它需要第一次自己工作。谢谢你。

下面的代码是我尝试过的,但如果打开键盘,它就不起作用。

    if (Input.GetMouseButtonDown(0))
    {
        PointerEventData pointerData = new PointerEventData(EventSystem.current);

        pointerData.position = Input.mousePosition;

        List<RaycastResult> results = new List<RaycastResult>();
        EventSystem.current.RaycastAll(pointerData, results);

        if (results.Count > 0)
        {
            //WorldUI is my layer name
            if (results[0].gameObject.layer == LayerMask.NameToLayer("UI"))
            {
                string dbg = "Root Element: {0} \n GrandChild Element: {1}";
                Debug.Log(string.Format(dbg, results[results.Count - 1].gameObject.name, results[0].gameObject.name));
                Debug.Log("Root Element: "+results[results.Count-1].gameObject.name);
                objectName.text = results[results.Count - 1].gameObject.name.ToString();
                //Debug.Log("GrandChild Element: "+results[0].gameObject.name);
                results.Clear();
            }
        }
    }

标签: c#androidunity3d

解决方案


推荐阅读