В большинстве случаев Unity автоматически обрабатывает ввод с клавиатуры для элементов графического интерфейса, но также можно легко отобразить клавиатуру по запросу из сценария.
Элементы графического интерфейса пользователя
Клавиатура появляется автоматически, когда пользователь нажимает на редактируемые элементы графического интерфейса. В настоящее время GUI.TextField, GUI.TextArea и GUI.PasswordField отобразит клавиатуру; дополнительные сведения см. в документации по классу GUI.
Ручное управление клавиатурой
Используйте функцию TouchScreenKeyboard.Open(), чтобы открыть клавиатуру. Информацию о параметрах, которые принимает эта функция, см. в справочнике по сценариям TouchScreenKeyboard.
Параметры раскладки клавиатуры
Клавиатура поддерживает следующие параметры:-
Свойства: | Функции: |
---|---|
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 будет возвращать Rect с позицией и размером, установленными на 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);
Оповещать клавиатуру
Чтобы отобразить клавиатуру с черным полупрозрачным фоном вместо классического непрозрачного, вызовите TouchScreenKeyboard.Open() следующим образом:
TouchScreenKeyboard.Open("", TouchScreenKeyboardType.Default, false, false, true, true);