Ввод с клавиатуры в Unity
Пространство имен: UnityEngine
Тип: TouchScreenKeyboard
Хотя HoloLens поддерживает множество форм ввода, включая клавиатуры Bluetooth, большинство приложений не могут предположить, что все пользователи будут иметь физическую клавиатуру. Если приложению требуется ввод текста, необходимо предоставить некоторую форму клавиатуры на экране.
Unity предоставляет класс TouchScreenKeyboard для приема ввода клавиатуры при отсутствии физической клавиатуры.
Поведение системной клавиатуры HoloLens в Unity
В HoloLens touchScreenKeyboard использует экранную клавиатуру системы и непосредственно наложение на верхней части томного представления приложения MR. Этот интерфейс аналогичен использованию клавиатуры в встроенных приложениях HoloLens. Обратите внимание, что системная клавиатура будет вести себя в соответствии с возможностями целевой платформы, например клавиатура holoLens 2 будет поддерживать прямое взаимодействие с рукой, а клавиатура на HoloLens (1-го поколения) будет поддерживать GGV (Gaze, Жест и голос). Кроме того, системная клавиатура не будет отображаться при выполнении удаленного взаимодействия Unity из редактора в HoloLens.
Использование системной клавиатуры в приложении 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 или поля ввода TextMeshPro. Кроме того, существует реализация на основе TouchScreenKeyboard в сцене HandInteractionExamples MRTK (на левой стороне есть пример взаимодействия с клавиатурой).
Следующий этап разработки
Если вы следите за процессом разработки Unity, который мы изложили, вы находитесь в разгаре изучения возможностей платформы Смешанная реальность и API. Здесь вы можете перейти к любому разделу или перейти непосредственно к развертыванию приложения на устройстве или эмуляторе.