Version: 2019.4
Mobile device input
Unity XR Input

Мобильная клавиатура

В большинстве случаев, для GUI элементов Unity будет обрабатывать ввод с клавиатуры автоматически, но из скрипта отобразить клавиатуру тоже легко.

GUI Элементы

Когда пользователь тапает на редактируемые элементы интерфейса, клавиатура появляется автоматически. В настоящее время GUI.TextField, GUI.TextArea и GUI.PasswordField отображают клавиатуру; для подробностей см. GUI class.

Руководство по обращению к клавиатуре

Use the TouchScreenKeyboard.Open() function to open the keyboard. Please see the TouchScreenKeyboard scripting reference for the parameters that this function takes.

Настройки раскладки клавиатуры

Клавиатура поддерживает следующие настройки:-

Свойство: Функция:
TouchScreenKeyboardType.Default Сообщения. Могут быть включены в клавиатуре с числами и знаками препинания.
TouchScreenKeyboardType.ASCIICapable Сообщения. Могут быть включены в клавиатуре с числами и знаками препинания.
TouchScreenKeyboardType.NumbersAndPunctuation Числа и знаки препинания. Могут быть включены в клавиатуре с сообщениями.
TouchScreenKeyboardType.URL Сообщения с слешем и .com кнопками. Могут быть включены в клавиатуре с числами и знаками препинания.
TouchScreenKeyboardType.NumberPad Только числа от 0 до 9.
TouchScreenKeyboardType.PhonePad Клавиатура используется для ввода цифр номера телефона.
TouchScreenKeyboardType.NamePhonePad Сообщения. Могут быть включены в клавиатуре телефона.
TouchScreenKeyboardType.EmailAddress Сообщения со знаком @. Могут быть включены в клавиатуре с числами и знаками препинания.

Предварительный просмотр текста

По умолчанию, редактируемое поле создается и помещается над клавиатурой после ее появления. Оно работает в качестве предпросмотра текста, который набирает пользователь, таким образом, он постоянно видит текст. Вы можете отключить предпросмотр текста, установив свойство TouchScreenKeyboard.hideInput в true. Обратите внимание, что это работает только для определенных типов клавиатур и режимов ввода. Например, это не сработает для телефонной клавиатуры и многострочного ввода текста. В этих случаях поле ввода все равно появится. TouchScreenKeyboard.hideInput - это глобальная переменная, она будет влиять на все клавиатуры.

Видимость и размер клавиатуры

В TouchScreenKeyboard есть три свойства клавиатуры, определяющие статус видимости и размер на экране.

Свойство: Функция:
visible Возвращает true если клавиатура целиком видна на экране и может быть использована для ввода символов.
area Возвращает позицию и размеры клавиатуры.
active Возвращает true, если клавиатура активирована. Это свойство не статическое. У вас должен быть экземпляр клавиатуры для его использования.

Заметьте, что TouchScreenKeyboard.area возвращает прямоугольник с позицией и размером, равными 0 до того, как клавиатура не станет полностью видна на экране. Не нужно запрашивать это значение немедленно после TouchScreenKeyboard.Open(). Последовательность событий клавиатуры выглядит следующим образом:

Вызывается TouchScreenKeyboard.Open(). TouchScreenKeyboard.active возвращает true. TouchScreenKeyboard.visible возвращает false. TouchScreenKeyboard.area возвращает (0, 0, 0, 0). * Клавиатура выдвигается на экран. Все свойства остаются такими же. * Клавиатура перестает выдвигаться. TouchScreenKeyboard.active возвращает true. TouchScreenKeyboard.visible возвращает true. TouchScreenKeyboard.area возвращает реальную позицию и размер клавиатуры.

Безопасный ввод текста

Можно настроить клавиатуру так, чтобы скрыть символы при наборе. Это нужно, когда пользователю требуется ввести секретную информацию (например, пароль). Чтобы вручную открыть клавиатуру с скрытыми символами, используйте следующий код:

TouchScreenKeyboard.Open("", TouchScreenKeyboardType.Default, false, false, true);


Hiding text while typing
Hiding text while typing

Alert клавиатура

Для отображения клавиатуры с черным полупрозрачным фоном, вместо классического непрозрачного, вызовите TouchScreenKeyboard.Open() следующим образом:

TouchScreenKeyboard.Open("", TouchScreenKeyboardType.Default, false, false, true, true);


Alert keyboard
Alert keyboard
Mobile device input
Unity XR Input