我有一个统一的简单场景,其中有一个输入字段。当我在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 () {
}
}
答案 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应用中运行本机键盘,则不会显示本机键盘。但是一旦您从“文件”>“构建设置”>“构建”或“文件”>“构建并运行”来构建和运行应用程序,它将显示在触摸输入字段上。