Поделиться через


Действия ввода — MRTK2

Действия ввода — это абстракции для необработанных входных данных, которые помогают изолировать логику приложения от конкретных источников входных данных, создающих входные данные. Например, можно определить действие Выбрать и сопоставить его с левой кнопкой мыши, кнопкой на геймпаде и триггером в 6 контроллере DOF. Затем логика приложения может прослушивать события действия выбора входных данных вместо того, чтобы учитывать все различные входные данные, которые могут его создать.

Создание действия ввода

Действия ввода настраиваются в профиле входных действий, в профиле системы ввода в компоненте Смешанная реальность Toolkit, указывая имя действия и тип входных данных (ограничение оси), с которым оно может быть сопоставлено:

Действие ввода

Ниже приведены наиболее часто используемые значения для ограничения оси:

Ограничение оси Описание
Цифровой Входные данные, например двоичная кнопка на геймпаде или мыши.
Одна ось Одноосный аналоговый вход, например аналоговый триггер на геймпаде.
Двойная ось Аналоговый вход с двумя оси, например стик.
Шесть Dof Трехмерная поза с преобразованием и поворотом, как в 6 контроллерах DOF.

Полный список можно найти в AxisType.

Сопоставление входных данных с действиями

Способ сопоставления входных данных и действия зависит от типа источника входных данных:

Входные данные контроллера

Перейдите к профилю сопоставления входных данных контроллера в разделе Входной системный профиль. Здесь вы найдете список всех поддерживаемых контроллеров:

Профиль сопоставления входных данных

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

Назначение действия ввода

Ввод речи

В профиле речевых команд в разделе Входной системный профиль вы найдете список определенных в настоящее время речевых команд. Чтобы сопоставить один из них с действием, просто выберите его в раскрывающемся списке Действие .

Профиль

Ввод жеста

Профиль жестов в профиле системы ввода содержит все определенные жесты. Вы можете сопоставить каждый из них с действием, выбрав его в раскрывающемся списке Действие .

Профиль жеста

Обработка входных действий

Предупреждение

В настоящее время с помощью методов, описанных в этом разделе, можно обрабатывать только входные действия цифрового типа. Для других типов действий вам придется обрабатывать непосредственно события для соответствующих входных данных. Например, для обработки 6 действий DOF, сопоставленных с входными данными контроллера, необходимо использовать IMixedRealityGestureHandler<T> с T = MixedRealityPose.

Самый простой способ обработки действий ввода — использовать InputActionHandler скрипт. Это позволяет определить действие, которое вы хотите прослушивать и реагировать на запущенные и завершенные события действия с помощью событий Unity.

Обработчик актона

Если требуется больше контроля, можно реализовать IMixedRealityInputActionHandler интерфейс непосредственно в скрипте. Дополнительные сведения об обработке событий с помощью интерфейсов обработчиков см. в разделе События ввода.

Примеры

См. MRTK/Examples/Demos/Input/Scenes/InputActions пример сцены, в которой показано, как создать действие, сопоставить его с контроллером, речевыми и жестами ввода и использовать его для поворота объекта по команде.

Пример действия ввода