Жесты

Жесты являются событиями ввода на основе человеческого руки. Существует два типа устройств, которые вызывают события ввода жестов в МРТК:

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

Gesture Profile

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

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

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

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

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

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

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

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

    1. Удержание касания:
      • начать манипуляцию
    2. Держите касание за пределами холдстартдуратион:
      • начать удержание
    3. Отпустите кнопку:
      • завершить удержание
      • завершение манипуляции
  • "Переместить":

    1. Удержание касания:
      • начать манипуляцию
    2. Держите касание за пределами холдстартдуратион:
      • начать удержание
    3. Переместить руку за пределы навигатионстартсрешолд:
      • отменить удержание
      • начать навигацию
    4. Отпустите кнопку:
      • завершение манипуляции
      • завершить навигацию

Пример сцены

Сцена хандинтерактионжестуривентсексампле (Assets/Мртк/examples/Хандтраккинг/сцены) показывает, как использовать результат указателя для порождения объекта в месте попадания.

GestureTesterСкрипт (Assets/мртк/examples/хандтраккинг/script) — это пример реализации для визуализации событий жестов через объекты gameobject. Функции обработчика изменяют цвет объектов индикаторов и отображают Последнее записанное событие в текстовых объектах сцены.