Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

XRInputSource: targetRaySpace Eigenschaft

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die schreibgeschützte XRInputSource-Eigenschaft targetRaySpace gibt ein XRSpace zurück (typischerweise ein XRReferenceSpace), das die Position und Orientierung des Ziellstrahls im virtuellen Raum darstellt. Der native Ursprung verfolgt die Position des Ursprungspunkts des Ziellstrahls, und seine Orientierung gibt die Ausrichtung des Controller-Geräts selbst an. Diese Werte, die im Kontext des targetRayMode der Eingabequelle interpretiert werden, können verwendet werden, um das Gerät vollständig als Eingabequelle zu interpretieren.

Um ein XRSpace zu erhalten, das die Position und Orientierung des Eingabekontrollers im virtuellen Raum darstellt, verwenden Sie die gripSpace-Eigenschaft.

Wert

Ein XRSpace-Objekt—typischerweise ein XRReferenceSpace oder XRBoundedReferenceSpace—, das die Position und Orientierung des Ziellstrahls des Eingabekontrollers im virtuellen Raum darstellt.

Der native Ursprung des zurückgegebenen XRSpace befindet sich an dem Punkt, von dem der Ziellstrahl ausgeht, und die Orientierung des Raums gibt die Richtung an, in die der Ziellstrahl zeigt.

Nutzungshinweise

Alle Eingabequellen—unabhängig von ihrem targetRayMode—haben einen gültigen targetRaySpace. Die genaue Bedeutung dieses Raums variiert jedoch je nach Modus:

  • Jeder Gaze-Input (targetRayMode-Wert von gaze) teilt dasselbe XRSpace-Objekt als ihren Ziellstrahl-Raum, da der Gaze-Input vom Kopf des Betrachters kommt. Dieser geteilte Raum repräsentiert denselben Ort wie der Raum, der von der XRSession-Methode requestReferenceSpace() zurückgegeben wird, wird jedoch als anderes Objekt beibehalten, um zukünftige Verbesserungen der API zu ermöglichen.
  • Der von verfolgten Zeigervorrichtungen gemeldete Ziellstrahl-Raum (targetRayMode von tracked-pointer) basiert tatsächlich auf der wahren räumlichen Position und Orientierung des Eingabegeräts.

Um die Position und Orientierung des Ziellstrahls während der Darstellung eines Rahmens zu bestimmen, übergeben Sie es in die XRFrame-Methode getPose() und verwenden Sie das zurückgegebene XRPose-Objekttransform, um die benötigten räumlichen Informationen zu erhalten.

Beispiele

Dieser Codeausschnitt zeigt einen Teil einer Funktion, die einmal pro Frame aufgerufen werden soll. Er sucht nach Eingaben, die einen nicht-null targetRaySpace haben. Eingaben, die für diese Eigenschaft einen Wert haben, repräsentieren Eingaben, die einen Ziellstrahl vom Benutzer aus projektiert.

Für jede solche Eingabe sucht dieses Beispiel nach Eingaben, deren targetRayMode tracked-pointer ist, was anzeigt, dass die Eingabe tatsächlich dazu gedacht ist, ein Zielgerät darzustellen, anstatt ein Blickgerät, Bildschirmtippen oder Mausklick. Für verfolgte Zeiger wird eine Funktion myRenderTargetRayAsBeam() aufgerufen, um einen Strahl von der virtuellen Position des Eingabekontrollers aus in die Richtung zu rendern, in die er zeigt.

Der Code sollte weiterhin Aufgaben wie das Zeichnen von Controllern oder anderen Objekten, die die Positionen der Hände des Benutzers im virtuellen Raum darstellen, sowie alle anderen eingabebezogenen Aufgaben ausführen.

js
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);
      }
    }

    // …
  }
}

Spezifikationen

Spezifikation
WebXR Device API
# dom-xrinputsource-targetrayspace

Browser-Kompatibilität

Siehe auch