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

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

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

  • None
  • Только ось X
  • Только ось Y
  • Только оси Z

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

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

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

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

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

События

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

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