Клавиатура Android не отображается при нажатии поля ввода в единстве?

1

У меня есть простая сцена в единстве, в которой есть поле ввода. Когда я запускаю сцену на устройстве Android и нажимаю поле ввода, клавиатура Android не отображается. Я подключаюсь через USB к ноутбуку с помощью приложения Unity Remote 5.

Вот мой код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;

public class InputNumber : MonoBehaviour {

    public InputField input;

    // Use this for initialization
    void Start () {
        if (input)
        {
            TouchScreenKeyboard.Open("", TouchScreenKeyboardType.Default, false, false, true);
        }
        input.keyboardType = TouchScreenKeyboardType.NumberPad;
    }

    // Update is called once per frame
    void Update () {

    }
}
Теги:
unity3d
keyboard

3 ответа

1
Лучший ответ

При использовании компонента InputField вам не нужно TouchScreenKeyboard.Open чтобы открыть клавиатуру вручную. После нажатия на InputField он откроется сам. Удалите ненужный TouchScreenKeyboard.Open. TouchScreenKeyboard.Open код.

Я подключаюсь через USB к ноутбуку с помощью приложения Unity Remote 5.

Это проблема.

Компонент InputField откроет клавиатуру только при сборке и запуске программы на устройстве. Unity Remote 5 используется только для обнаружения касания на экране и считывания таких датчиков, как GPS и датчики акселерометра, во время программирования в редакторе. Функции, поддерживаемые Unity Remote 5, см. В этом посте.

Кроме того, TouchScreenKeyboard.Open также не будет работать в редакторе. Вы должны собрать и запустить его на мобильном устройстве, чтобы оно работало, но TouchScreenKeyboard.Open здесь не требуется. Просто создайте игру и разверните ее на своем устройстве, и клавиатура должна открыться при нажатии на InputField.

1

Нет необходимости вызывать метод TouchScreenKeyboard.Open(). Собственная клавиатура не будет отображаться, если вы запускаете ее в приложении Unity Remote. Но оно будет отображаться при касании поля ввода после того, как вы соберете и запустите приложение из меню "Файл"> "Параметры сборки"> "Создать" или "Файл"> "Создать и запустить".

1

вам нужен Cross-Platform-Input актив из Unity standard asset пакета Unity standard asset в хранилище ресурсов. это бесплатно, и после импорта в ваш проект будет работать самостоятельно с текстовым полем. просто импортируйте его и попробуйте снова

тогда вам не понадобится:

 if (input)
        {
            TouchScreenKeyboard.Open("", TouchScreenKeyboardType.Default, false, false, true);
        }
        input.keyboardType = TouchScreenKeyboardType.NumberPad;

Мобильный класс Unitys просто откроет клавиатуру при нажатии на поле. дополнительное кодирование не требуется.

  • 0
    Я скачал стандартный ресурс и удалил свой код. Тем не менее, когда я запускаю на своем телефоне Android, клавиатура Android не отображается, когда я нажимаю на поле ввода. Нужно ли добавлять спрайты из кросс-платформенного ввода?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню