Жесты — MRTK2

Жесты — это события ввода на основе человеческих рук. Существует два типа устройств, которые вызывают события ввода жестов в MRTK:

Оба этих источника ввода используют профиль жестов Параметры для перевода событий сенсорного и жеста Unity соответственно в действия ввода MRTK. Этот профиль можно найти в профиле Параметры системы ввода.

Gesture Profile

События жестов

События жестов получаются путем реализации одного из интерфейсов обработчика жестов: IMixedRealityGestureHandler или IMixedRealityGestureHandler<TYPE> (см. таблицу обработчиков событий).

Пример реализации обработчика событий жестов см. в примере сцены .

При реализации универсальной версии события OnGestureCompleted и OnGestureUpdated могут получать типизированные данные следующих типов:

  • Vector2 — жест 2D-позиции. Производится сенсорными экранами для информирования о своих deltaPosition.
  • Vector3 — жест трехмерной позиции. Создается HoloLens для информирования о:
  • Quaternion — трехмерный жест поворота. Доступен для пользовательских источников входных данных, но в настоящее время не производится ни одной из существующих.
  • MixedRealityPose — объединенный трехмерный жест положения и поворота. Доступен для пользовательских источников входных данных, но в настоящее время не производится ни одной из существующих.

Порядок событий

В зависимости от входных данных пользователя существует две основные цепочки событий:

  • "Удержание":

    1. Удерживайте касание:
      • Запуск манипуляции
    2. Удерживайте касание за пределами HoldStartDuration:
      • Начальная удержание
    3. Отпустите касание:
      • полное удержание
      • Полная манипуляция
  • "Переместить":

    1. Удерживайте касание:
      • Запуск манипуляции
    2. Удерживайте касание за пределами HoldStartDuration:
      • Начальная удержание
    3. Перемещение руки за пределы NavigationStartThreshold:
      • Отмена удержания
      • Запуск навигации
    4. Отпустите касание:
      • Полная манипуляция
      • полная навигация

Пример сцены

Сцена HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) показывает, как использовать результат указателя для создания объекта в расположении попадания.

GestureTester Скрипт (Assets/MRTK/Examples/Demos/HandTracking/Script) — это пример реализации для визуализации событий жестов с помощью GameObjects. Функции обработчика изменяют цвет объектов индикатора и отображают последнее записанное событие в текстовых объектах сцены.