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