Unity 中的键盘输入

命名空间:UnityEngine
类型:TouchScreenKeyboard

虽然 HoloLens 支持许多形式的输入,包括蓝牙键盘,但大多数应用程序不能假定所有用户都有可用的物理键盘。 如果应用程序需要文本输入,则应提供某种形式的屏幕键盘。

Unity 提供 TouchScreenKeyboard 类用于在没有可用物理键盘时接受键盘输入

Unity 中的 HoloLens 系统键盘行为

在 HoloLens 上,TouchScreenKeyboard 利用系统的屏幕键盘并直接叠加在 MR 应用程序的立体视图上。 这种体验类似于在 HoloLens 的内置应用中使用键盘。 请注意,系统键盘的行为取决于目标平台的功能,例如,HoloLens 2 上的键盘支持直接手部交互,而 HoloLens(第一代)上的键盘支持 GGV(视线、手势和语音)。 此外,执行从编辑器到 HoloLens 的 Unity 远程处理时不会显示系统键盘。

在 Unity 应用中使用系统键盘

声明键盘

在该类中,声明一个变量用于存储 TouchScreenKeyboard,并声明一个变量用于保存键盘返回的字符串

UnityEngine.TouchScreenKeyboard keyboard;
public static string keyboardText = "";

调用键盘

发生请求键盘输入的事件时,请使用以下命令来显示键盘。

keyboard = TouchScreenKeyboard.Open("text to edit");

可以使用传入 TouchScreenKeyboard.Open 函数的其他参数来控制键盘的行为(例如设置占位符文本或支持自动更正)。 有关完整的参数列表,请参阅 Unity 的文档

检索键入的内容

只需调用 keyboard.text 即可检索内容。 你可能希望检索每帧的内容,或仅在键盘关闭时才检索内容。

keyboardText = keyboard.text;

替代键盘选项

除了直接使用 TouchScreenKeyboard 类以外,还可以使用 Unity 的“UI 输入字段”或“TextMeshPro 输入字段”来获取用户输入。 此外,MRTKHandInteractionExamples 场景中有一个基于 TouchScreenKeyboard 的实现(左侧提供了一个键盘交互示例)

下一个开发检查点

如果遵循我们规划的 Unity 开发旅程,则你正处于探索混合现实平台功能和 API 的过程之中。 从这里,你可以继续了解任何主题或直接跳到在设备或仿真器上部署应用。