Действия ввода — MRTK2
Действия ввода — это абстракции для необработанных входных данных, которые помогают изолировать логику приложения от конкретных источников входных данных, создающих входные данные. Например, можно определить действие Выбрать и сопоставить его с левой кнопкой мыши, кнопкой на геймпаде и триггером в 6 контроллере DOF. Затем логика приложения может прослушивать события действия выбора входных данных вместо того, чтобы учитывать все различные входные данные, которые могут его создать.
Создание действия ввода
Действия ввода настраиваются в профиле входных действий, в профиле системы ввода в компоненте Смешанная реальность Toolkit, указывая имя действия и тип входных данных (ограничение оси), с которым оно может быть сопоставлено:
Ниже приведены наиболее часто используемые значения для ограничения оси:
Ограничение оси | Описание |
---|---|
Цифровой | Входные данные, например двоичная кнопка на геймпаде или мыши. |
Одна ось | Одноосный аналоговый вход, например аналоговый триггер на геймпаде. |
Двойная ось | Аналоговый вход с двумя оси, например стик. |
Шесть Dof | Трехмерная поза с преобразованием и поворотом, как в 6 контроллерах DOF. |
Полный список можно найти в AxisType
.
Сопоставление входных данных с действиями
Способ сопоставления входных данных и действия зависит от типа источника входных данных:
Входные данные контроллера
Перейдите к профилю сопоставления входных данных контроллера в разделе Входной системный профиль. Здесь вы найдете список всех поддерживаемых контроллеров:
Выберите тот, который нужно настроить, и появится диалоговое окно со всеми входными данными контроллера, позволяющее задать действие для каждого из них:
Ввод речи
В профиле речевых команд в разделе Входной системный профиль вы найдете список определенных в настоящее время речевых команд. Чтобы сопоставить один из них с действием, просто выберите его в раскрывающемся списке Действие .
Ввод жеста
Профиль жестов в профиле системы ввода содержит все определенные жесты. Вы можете сопоставить каждый из них с действием, выбрав его в раскрывающемся списке Действие .
Обработка входных действий
Предупреждение
В настоящее время с помощью методов, описанных в этом разделе, можно обрабатывать только входные действия цифрового типа. Для других типов действий вам придется обрабатывать непосредственно события для соответствующих входных данных. Например, для обработки 6 действий DOF, сопоставленных с входными данными контроллера, необходимо использовать IMixedRealityGestureHandler<T>
с T = MixedRealityPose
.
Самый простой способ обработки действий ввода — использовать InputActionHandler
скрипт. Это позволяет определить действие, которое вы хотите прослушивать и реагировать на запущенные и завершенные события действия с помощью событий Unity.
Если требуется больше контроля, можно реализовать IMixedRealityInputActionHandler
интерфейс непосредственно в скрипте. Дополнительные сведения об обработке событий с помощью интерфейсов обработчиков см. в разделе События ввода.
Примеры
См. MRTK/Examples/Demos/Input/Scenes/InputActions
пример сцены, в которой показано, как создать действие, сопоставить его с контроллером, речевыми и жестами ввода и использовать его для поворота объекта по команде.