我有一个简单的统一场景,其中有一个输入字段。当我在 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 () {
}
}
无需调用TouchScreenKeyboard.Open()方法。如果您在 Unity Remote 应用程序中运行本机键盘,则不会显示本机键盘。但是,一旦您从“文件”>“构建设置”>“构建”或“文件”>“构建并运行”构建并运行应用程序,它将显示在触摸输入字段上。
使用
InputField
组件时,您不需要需要TouchScreenKeyboard.Open
手动打开键盘。单击InputField
后,它将自行打开。删除不必要的TouchScreenKeyboard.Open
代码。
我使用 Unity Remote 5 应用程序通过 USB 连接到我的笔记本电脑。
这就是问题所在。
仅当您
在设备上构建并运行程序时,
InputField
组件才会打开键盘。 Unity Remote 5 仅用于在编辑器上编程时检测屏幕上的触摸并读取 GPS 和加速计传感器等传感器。有关 Unity Remote 5 支持的功能,请参阅 this 帖子。
此外,
TouchScreenKeyboard.Open
在编辑器中也不起作用。您必须在移动设备上构建并运行它才能工作,但这里不需要 TouchScreenKeyboard.Open
。只需构建游戏并将其部署到您的设备,当您单击输入字段时键盘就会打开。
您需要资产商店中
Cross-Platform-Input
包中的 Unity standard asset
资产。这是免费的,一旦导入到您的项目中,它将在文本字段中单独工作。只需导入它并再次尝试使用手机
那么你就不需要:
if (input)
{
TouchScreenKeyboard.Open("", TouchScreenKeyboardType.Default, false, false, true);
}
input.keyboardType = TouchScreenKeyboardType.NumberPad;
当您点击该字段时,Unity 的移动类只会打开键盘。无需额外编码。
@程序员你的答案是“
使用InputField组件时,不需要TouchScreenKeyboard.Open手动打开键盘。单击输入字段后,它将自行打开。删除不必要的 TouchScreenKeyboard.Open 代码。”
但是它的键盘打开了打字移动输入区域,我怎样才能摆脱它的默认打字区域。除了隐藏 inputField 组件的移动输入。 为了更好的理解,搜索这个“unity input field android Problem”并转到图片,你会看到手机屏幕。如果你知道解决方案,请帮助我。