XRInputSource: свойство targetRaySpace
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Только для чтения XRInputSource свойство targetRaySpace возвращает XRSpace (обычно XRReferenceSpace) представляющее положение и ориентацию целевого луча в виртуальном пространстве. Его собственное происхождение отслеживает положение точки начала целевого луча, а его ориентация указывает ориентацию устройства контроллера. Эти значения, интерпретируемые в контексте targetRayMode источника ввода, могут использоваться для полной интерпретации устройства как источника ввода.
Чтобы получить XRSpace представляющее положение и ориентацию контроллера ввода в виртуальном пространстве, используйте свойство gripSpace.
Значение
Объект XRSpace — обычно XRReferenceSpace или XRBoundedReferenceSpace — который представляет положение и ориентацию целевого луча контроллера ввода в виртуальном пространстве.
Нативное начало возвращенного XRSpace находится в точке, из которой исходит целевой луч, а ориентация пространства указывает направление, в котором направлен целевой луч.
Примечания по использованию
Все источники ввода — независимо от их targetRayMode — имеют действительный targetRaySpace. Однако точное значение этого пространства варьируется в зависимости от режима:
- Каждый ввод взгляда (
targetRayModeзначениеgaze) использует тот же объектXRSpace, что и их пространство целевого луча, так как ввод взгляда поступает от головы зрителя. Это общее пространство представляет ту же локацию, что и пространство, возвращаемое методомXRSessionrequestReferenceSpace(), но поддерживается как отдельный объект для будущих улучшений API. - Пространство целевого луча, сообщаемое отслеживаемыми указателями ввода (
targetRayModeизtracked-pointer) основано на реальном пространственном положении и ориентации устройства ввода.
Чтобы определить положение и ориентацию целевого луча при отрисовке кадра, передайте его в метод XRFrame метод getPose(), а затем используйте возвращенный объект XRPose и его метод transform для получения необходимой пространственной информации.
Примеры
Этот фрагмент кода демонстрирует часть функции, которая должна вызываться один раз за кадр. Он ищет вводы, которые имеют ненулевое значение 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);
}
}
// …
}
}
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
targetRaySpace |
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/targetRaySpace