Разработка
Разработка
Выберите платформу

Действия ввода

Обновлено: 10 ноя 2025 г.

Что такое действия ввода?

Действия ввода используются для запроса у устройств, таких как стилус или контроллер, определенных значений ввода, например, величины сжимаемого захвата, нажатия кнопки, положения устройства или для запуска тактильной обратной связи. Прежде чем обращаться к ним с помощью скриптов, эти действия необходимо настроить в меню Input Actions. Определения действий соответствуют спецификации Open XR Action.
После знакомства с этим руководством вы сможете:
  • получать позы определенных устройств;
  • получать состояния кнопок, сенсорных панелей и курков;
  • определять, какие устройства подключены;
  • инициировать тактильную обратную связь.
Действия ввода используются для добавления поддержки некоторых новых контроллеров и устройств. Рекомендуемый способ использования действий ввода в Unity — получить пакет SDK от разработчика конкретного устройства, которое вы хотите интегрировать.
Не все контроллеры поддерживаются гарнитурами Meta. Проверьте, поддерживается ли ваше конкретное устройство, прежде чем пытаться получить к нему доступ с помощью Input Actions.

Предварительные требования

Для действий ввода требуется Meta XR Core SDK.

Как работают действия ввода?

Определение действий ввода

Действия ввода определяются в меню Input Actions (Действия ввода), доступном в окне Настройка проекта в Unity: Редактировать > Настройки проекта... > Meta XR > Действия ввода).

Существующие устройства

Возможно, используемое вами устройство поставляется с SDK или примером, включающим в себя "Набор действий ввода", который уже содержит соответствующие определения действий. Вы можете связать этот актив набора действий ввода в области "Наборы действий ввода" меню "Действия ввода".

Новые устройства

Если у вас нет набора действий ввода, вы можете создать свой собственный список поддерживаемых действий в списке "Определения действий ввода".
Определения действий ввода включают в себя:
  • Профиль взаимодействия: эта строка определяет, с каким устройством должны использоваться действия, например, /interaction_profiles/oculus/touch_controller — профиль взаимодействия для сенсорного контроллера Meta.
Каждое новое действие должно содержать:
  • имя действия — имя, используемое для идентификации действия в коде, например "Совет", "Ускорение", "Кнопка вперед".
  • тип действия — значения какого типа возвращает это действие? Действия также могут быть использованы для запуска тактильной обратной связи с помощью типа действия "Вибрация".
  • Пути действия: определяют, какой вход на устройстве должно возвращать это действие. Например, /user/hand/left/input/a/click указывает, что это действие должно выдавать значение true, если нажата кнопка A.

Значения действий

Для запроса определенных действий можно использовать одну из нескольких функций OVRPlugin. Эти функции выдают либо значение true в случае успешного выполнения функции, либо false, если возникла ошибка, например недопустимое имя действия или неподдерживаемый путь.
 bool GetActionStateBoolean(string actionName, ref bool result);
 bool GetActionStatePose(string actionName, OVRPlugin.Hand hand, ref Posef pose);
 bool GetActionStateFloat(string actionName, ref float result);
 bool TriggerVibrationAction(string actionName, OVRPlugin.Hand hand, float duration, float amplitude);

Определение устройства

Вы можете определить, какое устройство подключено, запустив новую функцию в OVRPlugin:
    string GetCurrentInteractionProfile(OVRPlugin.Hand hand);
Это вернет профиль взаимодействия устройства, которое в данный момент находится в указанной руке, позволяя определить, находится ли это устройство в руке или нет. Обратите внимание: устройства могут выполнять несколько различных профилей взаимодействия и могут вернуться к использованию одного из них, поддерживаемого вашим приложением, даже если они не являются именно этим устройством. Например, сенсорный про-контроллер может быть привязан к профилю взаимодействия сенсорного контроллера, если приложение специально не поддерживает сенсорные про-контроллеры. Это может расширить диапазон устройств, которые может поддерживать ваше приложение, но также может привести к непредвиденному развитию событий.

Тактильная обратная связь

Действия ввода также могут быть использованы для запуска тактильного отклика. С помощью опции OVRPlugin.TriggerVibrationAction вы можете заставить соответствующее устройство вибрировать.
  • Продолжительность — продолжительность вибрации в секундах.
  • Амплитуда — это интенсивность вибрации, нормированная в диапазоне 0–1.

Устранение неполадок

Одна из распространенных причин ошибок при использовании действий ввода — привязка к неправильным или неподдерживаемым путям. Если вы обнаружили, что не можете получить результаты для действий, проверьте, что введенные вами пути точно совпадают с путями, соответствующими спецификации Open XR для вашего устройства. Если вы работаете на Android, возможно, вы сможете найти больше информации о конкретных ошибках через Logcat.
Не каждое устройство можно использовать с действиями ввода. В настоящее время поддерживаются только контроллеры Meta от первых производителей или стилус MX Ink.

Неподдерживаемые контроллеры

Неподдерживаемые контроллеры могут связываться с несколькими различными профилями взаимодействия, и доступ к ним по-прежнему может реализовываться путем создания определений действий ввода для более широко поддерживаемого профиля взаимодействия. Например, если в приложении не были специально созданы действия ввода для профиля взаимодействия MX Ink, стилус будет восприниматься приложением как сенсорный контроллер и использовать профиль взаимодействия с сенсорным контроллером. Используя этот метод, вы сможете получить поддержку устройств, не поддерживаемых системой в явном виде.

Дополнительная информация

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

Руководства по проектированию

  • Модальности ввода. Узнайте о различных модальностях ввода.
  • Голова. Узнайте о принципах проектирования и рекомендациях по созданию интерфейса для ввода с помощью головы.
  • Руки. Узнайте о принципах проектирования и рекомендациях по созданию интерфейса для использования рук.
  • Контроллеры. Узнайте о принципах проектирования и рекомендациях по созданию интерфейса для использования контроллеров.
  • Голос. Узнайте о принципах проектирования и рекомендациях по созданию интерфейса для голосового взаимодействия.
  • Периферийные устройства. Узнайте о принципах проектирования и рекомендациях по созданию интерфейса для работы с периферийными устройствами.
Логотип навигации
Русский
© 2026 Meta