Клавиатура Android не отображается при нажатии поля ввода в единстве? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть простая сцена в единстве, в которой есть поле ввода.Когда я запускаю сцену на устройстве 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 () {

    }
}

Ответы [ 3 ]

0 голосов
/ 26 октября 2018

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

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

В этом проблема.

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

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

0 голосов
/ 21 февраля 2019

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

0 голосов
/ 26 октября 2018

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...