UMG и клавиатура в Unreal

Unreal Motion Graphics (UMG) — это встроенная система пользовательского интерфейса Unreal Engine, используемая для создания интерфейсов, таких как меню и текстовые поля. Пользовательские интерфейсы, созданные с помощью UMG, состоят из мини-приложений. Мы поможем вам создать новое мини-приложение, добавить его в мировое пространство и включить взаимодействие с помощью системной клавиатуры в качестве примера. Дополнительные сведения об UMG см. в официальной документации по Unreal Engine.

Создание мини-приложения

  • Создайте схему мини-приложения для размещения пользовательского интерфейса игры:

Снимок экрана: добавление схемы мини-приложения из меню Unreal

  • Откройте новую схему и добавьте компоненты из палитры на холст. В этом случае мы добавили два компонента текстового поля из раздела "Входные данные":

Снимок экрана: окно иерархии с выделенным и развернутным текстовым компонентом мини-приложения

  • Выберите мини-приложение в окне Иерархия или Designer и измените параметры на панели сведений. В этом случае мы добавили текст подсказки по умолчанию и цвет оттенка, который отображается при наведении указателя мыши на текстовое поле. Текстовое поле будет отображать виртуальную клавиатуру на HoloLens при взаимодействии с:

Снимок экрана: измененные параметры в окне иерархии

  • На события также можно подписаться на панели сведений:

Снимок экрана: события на панели сведений

Добавление мини-приложения в World Space

  • Создайте новый субъект, добавьте компонент мини-приложения и добавьте его в сцену:

Снимок экрана: субъект с вложенным мини-приложением

  • На панели сведений для мини-приложения задайте для класса Мини-приложения значение Схема мини-приложения, созданная ранее:

Снимок экрана: панель сведений о схеме с набором классов мини-приложения

  • Для текстового мини-приложения убедитесь, что флажок Получать аппаратные входные данные снят, поэтому мы обновляем его текст только с виртуальной клавиатуры:

Снимок экрана: раздел взаимодействия с снятием флажка

Взаимодействие с мини-приложением

Мини-приложения UMG обычно получают входные данные от мыши. В HoloLens или ВИРТУАЛЬНОй реальности необходимо имитировать мышь с помощью компонента взаимодействия с мини-приложениями, чтобы получить те же события.

  • Создайте новый субъект, добавьте компонент взаимодействия с мини-приложением и добавьте его в сцену:

Снимок экрана: новый субъект с выделенным компонентом взаимодействия с мини-приложением

  • На панели сведений для компонента "Взаимодействие с мини-приложением":
    • Задайте для расстояния взаимодействия нужное расстояние.
    • Установка настраиваемогоисточника взаимодействия
    • Для разработки задайте для параметра Показать отладкузначение true:

Снимок экрана: взаимодействие с мини-приложением и свойства компонента отладки

Источник взаимодействия по умолчанию — "World", который должен отправлять лучи на основе положения в мире компонента "Взаимодействие с мини-приложением". В AR и VR это не так. Включение функции "Показать отладку" и добавление оттенка наведения на мини-приложения важно, чтобы проверка компонент взаимодействия с мини-приложениями выполняет ожидаемые действия. Обходной путь — использовать пользовательский источник и задать луч в графе событий из луча руки.

Здесь мы вызываем это из такта событий:

Схема такта события

Затем добавьте события виртуального указателя мыши в компонент взаимодействия мини-приложения, реагирующий на входные данные HoloLens. В этом случае отправьте событие нажатия левой мыши, когда рука схвачена, и событие отпускания левой мыши, если оно не схватывается:

Схема с добавленными событиями виртуального указателя мыши

Теперь при развертывании приложения в HoloLens 2 вы увидите луч руки, простирающийся от правой руки. Если вы направите его в одно из редактируемых текстовых полей и коснуться воздуха, системная клавиатура появится перед вами и позволит вам ввести текст.

Примечание

Для системной клавиатуры HoloLens требуется Unreal Engine 4.26 или более поздней версии. Кроме того, клавиатура не будет отображаться при потоковой передаче приложения из редактора Unreal на гарнитуру, только если приложение запущено на устройстве.

См. также: