Жесты — MRTK2
Жесты — это входные события на основе человеческих рук. Существует два типа устройств, которые вызывают события ввода жестов в MRTK:
Устройства Windows Смешанная реальность, такие как HoloLens. В этом разделе описываются движения ("Воздушный касание") и жесты касания и удержания.
Дополнительные сведения о жестах HoloLens см. в документации по жестам Windows Смешанная реальность.
WindowsMixedRealityDeviceManager
упаковывает XR Unity. WSA. Input.GestureRecognizer для использования событий жестов Unity с устройств HoloLens.Сенсорные устройства.
UnityTouchController
упаковывает класс Unity Touch, поддерживающий физические сенсорные экраны.
Оба этих источника ввода используют профиль жеста Параметры для перевода событий сенсорного и жеста Unity соответственно в действия ввода MRTK. Этот профиль можно найти в профиле входной системы Параметры.
События жестов
События жестов получаются путем реализации одного из интерфейсов обработчика жестов: IMixedRealityGestureHandler
или IMixedRealityGestureHandler<TYPE>
(см. таблицу обработчиков событий).
Пример сцены см. в примере реализации обработчика событий жестов.
При реализации универсальной версии события OnGestureCompleted и OnGestureUpdated могут получать типизированные данные следующих типов:
Vector2
— жест положения 2D. Производится сенсорными экранами, чтобы сообщить о своихdeltaPosition
.Vector3
— жест трехмерной позиции. Производится HoloLens для информирования:cumulativeDelta
события манипуляцииnormalizedOffset
события навигации
Quaternion
— жест поворота трехмерного ввода. Доступно для пользовательских источников входных данных, но в настоящее время не производится ни одной из существующих.MixedRealityPose
— Объединенный трехмерный жест положения и поворота. Доступно для пользовательских источников входных данных, но в настоящее время не производится ни одной из существующих.
Порядок событий
В зависимости от входных данных пользователя существует две основные цепочки событий:
"Удержание":
- Удерживайте касание:
- Запуск манипуляции
- Удерживайте касание за пределами HoldStartDuration:
- Начальная удержание
- Коснитесь выпуска:
- полное удержание
- Полная манипуляция
- Удерживайте касание:
"Переместить":
- Удерживайте касание:
- Запуск манипуляции
- Удерживайте касание за пределами HoldStartDuration:
- Начальная удержание
- Перемещение руки за пределы NavigationStartThreshold:
- Отмена удержания
- Запуск навигации
- Коснитесь выпуска:
- Полная манипуляция
- полная навигация
- Удерживайте касание:
Пример сцены
Сцена HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scene) показывает, как использовать результат указателя для создания объекта в расположении попадания.
GestureTester
Скрипт (Assets/MRTK/Examples/Demos/HandTracking/Script) — это пример реализации для визуализации событий жестов с помощью GameObjects. Функции обработчика изменяют цвет объектов индикатора и отображают последнее записанное событие в текстовых объектах в сцене.