Ввод с клавиатуры в 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. Здесь можно перейти к любой теме или перейти непосредственно к развертыванию приложения на устройстве или эмуляторе.