统一按下输入字段时,Android键盘不显示?

时间:2018-10-25 20:14:36

标签: android unity3d keyboard

我有一个统一的简单场景,其中有一个输入字段。当我在Android设备中运行场景并按输入框时,Android键盘不显示。我正在使用Unity Remote 5应用程序通过USB连接到笔记本电脑。

这是我的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;

public class InputNumber : MonoBehaviour {

    public InputField input;

    // Use this for initialization
    void Start () {
        if (input)
        {
            TouchScreenKeyboard.Open("", TouchScreenKeyboardType.Default, false, false, true);
        }
        input.keyboardType = TouchScreenKeyboardType.NumberPad;
    }

    // Update is called once per frame
    void Update () {

    }
}

3 个答案:

答案 0 :(得分:1)

您需要资产商店中Cross-Platform-Input包中的Unity standard asset资产。这是免费的,一旦导入到项目中,它将与文本字段一起单独工作。只需导入它,然后再尝试打电话

那么您将不需要:

 if (input)
        {
            TouchScreenKeyboard.Open("", TouchScreenKeyboardType.Default, false, false, true);
        }
        input.keyboardType = TouchScreenKeyboardType.NumberPad;

Unitys移动类将在您点击该字段时打开键盘。无需额外的编码。

答案 1 :(得分:1)

使用InputField组件时,您不需要需要TouchScreenKeyboard.Open来手动打开键盘。单击InputField后,它将自动打开。删除不必要的TouchScreenKeyboard.Open代码。

  

我正在使用Unity Remote 5应用程序通过USB连接到笔记本电脑。

就是这个问题。

InputField组件仅在您在设备上构建并运行程序时打开键盘。 Unity Remote 5 仅用于在编辑器上进行编程时检测屏幕上的触摸并读取GPS和加速度传感器等传感器。有关 Unity Remote 5 支持的功能,请参见this

此外,TouchScreenKeyboard.Open在编辑器中也不起作用。您必须在移动设备上构建并运行它才能使它工作,但是这里不需要TouchScreenKeyboard.Open。只需构建游戏并将其部署到设备上,然后在单击InputField时打开键盘即可。

答案 2 :(得分:1)

无需调用TouchScreenKeyboard.Open()方法。如果您在Unity Remote应用中运行本机键盘,则不会显示本机键盘。但是一旦您从“文件”>“构建设置”>“构建”或“文件”>“构建并运行”来构建和运行应用程序,它将显示在触摸输入字段上。