XRInputSource: свойство targetRayMode
Ограниченная доступность
Эта функция не является базовой, так как она не работает во всех широко используемых браузерах.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Только для чтения XRInputSource свойство targetRayMode указывает способ генерации целевого луча для источника ввода и способ его отображения пользователю.
Обычно целевой луч рисуется от источника системы наведения вдоль целевого луча в направлении, в котором пользователь смотрит или указывает. Стиль луча, как и метод указания конечной точки луча, обычно зависит от вас. Целевая точка или объект могут быть указаны путем рисования фигуры или выделения целевой поверхности или объекта.
Целевой луч, испускаемый контроллером руки:

Целевой луч может быть чем угодно, от простой линии (в идеале, постепенно исчезающей на расстоянии) до анимированного эффекта, например, стиля «фазер» из научной фантастики, показанного на скриншоте выше.
Значение
Строка, указывающая метод генерации и отображения целевого луча для пользователя. Возможные значения:
gaze-
Пользователь использует систему отслеживания взгляда (или **ввод по взгляду**), которая определяет направление взгляда пользователя. Целевой луч будет нарисован, исходя от глаз пользователя, и будет следовать за направлением их взгляда.
screen-
Направление целевого луча указывается путем нажатия на сенсорный экран, мышью или другим устройством ввода.
tracked-pointer-
Наведение выполняется с помощью портативного устройства или системы отслеживания рук, на которые пользователь указывает в направлении цели. Целевой луч простирается от руки (или объекта в руке) в направлении цели. Направление определяется специфичными для платформы правилами, хотя, если таких правил нет, направление выбирается по предположению, что пользователь указывает своим указательным пальцем прямо от руки.
transient-pointer-
Источник ввода был сгенерирован как часть намерения взаимодействия с операционной системой, а не конкретного аппаратного обеспечения. Некоторые примеры включают намерения пользователя, основанные на информации, слишком чувствительной для прямого раскрытия (например, взгляд), синтезированные вводы от веб-драйверов или вводы, сгенерированные вспомогательными технологиями.
Примечания по использованию
Источник ввода targetRaySpace указывает положение и ориентацию целевого луча и может использоваться для определения места рендеринга луча.
Примеры
Этот фрагмент кода демонстрирует часть функции, которая должна вызываться каждый кадр. Она ищет вводы, у которых есть ненулевое null targetRaySpace. Входы, у которых есть значение для этого свойства, представляют входы, которые проецируют целевой луч наружу от пользователя.
Для каждого такого входа этот пример ищет вводы, у которых targetRayMode равно tracked-pointer, что указывает на то, что вход, в действительности, предназначен для представления устройства наведения, а не устройства наблюдения, сенсорного экрана или мыши. Для отслеживаемых указателей вызывается функция myRenderTargetRayAsBeam(), чтобы отобразить луч от виртуального положения контроллера ввода в направлении указания.
Код должен продолжать выполнять задачи, такие как рисование контроллеров или любых объектов, представляющих положение рук пользователя в виртуальном пространстве, а также любые другие задачи, связанные с вводом.
function updateInputSources(session, frame, refSpace) {
for (const source of session.getInputSources()) {
const targetRayPose = frame.getPose(inputSource.targetRaySpace, refSpace);
if (targetRayPose) {
if (source.targetRayMode === "tracked-pointer") {
myRenderTargetRayAsBeam(targetRayPose);
}
}
// …
}
}
См. статью Вводы и источники ввода для получения более подробной информации и более полного примера.
Спецификации
| Спецификация |
|---|
| WebXR Device API # dom-xrinputsource-targetraymode |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
targetRayMode |
79 | 79 | Нет | 66 | Нет | 79 | Нет | 57 | Нет | 11.2 | Нет |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource/targetRayMode