Кажется, мы попали в довольно неприятную ошибку.
Для некоторого контекста:
Мы работаем над игрой, которая будет опубликована в рамках программы Creators для Xbox One.
Нашей игре нужна клавиатура для некоторых головоломок, чтобы пользователь мог вводить текст и команды.
Что мы делаем:
Когда поле ввода активно, мы используем TouchScreenKeyboard.Open, чтобы открыть клавиатуру внутри обновления. Пока поле ввода активно, текст поля ввода совпадает с тем, что вы вводите на клавиатуре, установив inputField.text = keyboard.text.
Мы не можем использовать XAML, поэтому мы застряли с D3D.
Фактический код:
В Update () есть оба следующих элемента:
if(InputFieldHandler.instance != null && InputFieldHandler.instance.inputField != null && InputFieldHandler.instance.isActivated) {
touchKeyboard = TouchScreenKeyboard.Open("", TouchScreenKeyboardType.Default);
}
if(touchKeyboard != null && touchKeyboard.active) {
InputFieldHandler.instance.inputField.text = touchKeyboard.text;
}
Все это работает в Windows и иногда работает для нас в Xbox (не в сборках выпуска).
Но чаще всего происходит:
Клавиатура всплывает и исчезает без причины, и пользователь не может ее снова открыть.
Пользователь может выбирать персонажей, но это не переводит в игру.
Есть какие-нибудь советы и хитрости, которые мы должны знать об этом? Как правильно использовать TouchScreenKeyboard для Xbox UWP?