Обработчик манипуляций — MRTK2

Manipulation handler

Скрипт ManipulationHandler позволяет сделать объект перемещаемым, масштабируемым и вращаемым с помощью одной или двух рук. Манипуляция может быть ограничена, чтобы она разрешала только определенные виды преобразования. Сценарий работает с различными типами входных данных, включая HoloLens 2 сформулированные рукописные данные, лучи рук, ввод жестов HoloLens (1-го поколения) и ввод иммерсивного контроллера движения гарнитуры.

Использование обработчика манипуляций

Добавьте компонент скрипта ManipulationHandler в GameObject. Обязательно добавьте в объект коллайдер, соответствующий его захватываемым границам.

Чтобы объект реагировал на близко сформулированные входные данные руки, добавьте NearInteractionGrabbable скрипт.

Using the manipulation handler in the unity editor

Свойства инспектора

Manipulation Handler structure

Преобразование узла Преобразование, которое будет перетаскиваться. По умолчанию используется объект компонента.

Тип манипуляции Указывает, можно ли управлять объектом с помощью одной руки, двух рук или обоих.

  • Только одна рука
  • Только две руки
  • Одна и две руки

Тип манипуляции с двумя руками

  • Масштабирование: допускается только масштабирование.
  • Поворот: допускается только поворот.
  • Масштабирование перемещения: допускается перемещение и масштабирование.
  • Перемещение поворота: допускается перемещение и поворот.
  • Поворот масштабирования: допускается поворот и масштабирование.
  • Перемещение по шкале поворота: допускается перемещение, поворот и масштабирование.

Manipulation Handler

Разрешить дальней манипуляции Указывает, можно ли выполнять манипуляцию с помощью прямого взаимодействия с указателями.

Режим поворота одной руки рядом Указывает, как будет вести себя объект, когда он захватывается с одной рукой или контроллером рядом.

Режим поворота одной руки далеко Указывает, как будет вести себя объект, когда он захватывается одной рукой или контроллером на расстоянии.

Параметры режима поворота одной руки Указывает, как объект будет поворачиваться при захвате одной рукой.

  • Сохранение исходного поворота: не поворачивает объект при перемещении
  • Поддержание поворота для пользователя: поддерживает исходную ротацию объекта для оси X/Y для пользователя
  • Гравитация выровнена по оси поворота для пользователя: поддерживает исходный поворот объекта для пользователя, но делает объект вертикальным. Полезно для объектов с элементом управления границами.
  • Пользователь распознавания лиц: гарантирует, что объект всегда сталкивается с пользователем. Полезно для баннеров и панелей.
  • Лицо от пользователя: гарантирует, что объект всегда сталкивается с пользователем. Полезно для баннеров и панелей, которые настроены для отображения в обратном направлении.
  • Поворот вокруг центра объектов: работает только для сформулированных рук или контроллеров. Поворот объекта с помощью поворота руки или контроллера, но относительно центра объекта. Полезно для проверки на расстоянии.
  • Поворот о точке захвата: работает только для сформулированных рук или контроллеров. Поворачивайте объект так, как если бы он удерживался рукой или контроллером. Полезно для проверки.

Поведение выпуска При освобождении объекта укажите его поведение физического смещения. Требует наличия жесткого компонента для этого объекта.

  • Nothing
  • Все
  • Сохранение скорости
  • Сохранение скорости Angular

Ограничения поворота Указывает, с какой осью объект будет поворачиваться при взаимодействии.

  • Нет
  • Только ось X
  • Только ось Y
  • Только оси Z

Использование локального пространства для ограничения Переключатель для переключения между применением ограничений относительно оси мирового пространства или локальной оси пространства.

Ограничения на перемещение

  • Нет
  • Исправление расстояния от головы

Сглаживание активно Указывает, активна ли сглаживание.

Сглаживание суммы одной руки Величина сглаживания, применяемая к перемещению, масштабированию, повороту. Сглаживание 0 означает отсутствие сглаживания. Максимальное значение означает, что значение не изменяется.

События

Обработчик манипуляции предоставляет следующие события:

  • OnManipulationStarted: срабатывает при запуске манипуляции.
  • OnManipulationEnded: срабатывает при завершении манипуляции.
  • OnHoverStarted: срабатывает, когда рука или контроллер наведите указатель мыши на манипулятивную, рядом или далеко.
  • OnHoverEnded: срабатывает, когда рука / контроллер не наводит указатель мыши на манипулятивную, рядом или далеко.