PositionSensorVRDevice

Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, könnte sie bereits aus den relevanten Webstandards entfernt worden sein, in Kürze entfernt werden oder nur noch aus Kompatibilitätsgründen bestehen. Vermeiden Sie die Verwendung und aktualisieren Sie vorhandenen Code, falls möglich; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu unterstützen. Beachten Sie, dass diese Funktion jederzeit aufhören könnte zu funktionieren.

Nicht standardisiert: Diese Funktion ist nicht standardisiert und befindet sich nicht auf dem Weg zur Standardisierung. Verwenden Sie sie nicht auf Produktionsseiten, die dem Web ausgesetzt sind: Sie funktioniert nicht für alle Benutzer. Es kann auch große Inkompatibilitäten zwischen Implementierungen geben, und das Verhalten kann sich in Zukunft ändern.

Das PositionSensorVRDevice-Interface der WebVR API repräsentiert den Positionssensor der VR-Hardware. Sie können Informationen wie die aktuelle Position und Orientierung des Sensors in Bezug auf das Head-Mounted Display über die Methode PositionSensorVRDevice.getState() abrufen.

Instanzmethoden

PositionSensorVRDevice.getState() Veraltet Nicht standardisiert

Gibt den aktuellen Zustand des Positionssensors für den aktuellen Frame zurück (z. B. innerhalb des aktuellen window.requestAnimationFrame-Callbacks) oder für den vorherigen Frame, enthalten in einem VRPose-Objekt. Dies ist die Methode, die Sie normalerweise verwenden möchten, im Gegensatz zu getImmediateState().

PositionSensorVRDevice.getImmediateState() Veraltet Nicht standardisiert

Gibt den aktuellen momentanen Zustand des Positionssensors zurück. Dies ist nur selten zu verwenden, für bestimmte Spezialfälle, beispielsweise um die unmittelbare Position eines Handsensors zu erfassen – oder zumindest wird es in der Zukunft der Fall sein.

PositionSensorVRDevice.resetSensor() Veraltet Nicht standardisiert

Kann verwendet werden, um den Sensor zurückzusetzen, falls gewünscht, und die Position und Orientierungswerte auf null zurückzusetzen.

Instanzeigenschaften

Dieses Interface definiert keine eigenen Eigenschaften, aber es erbt die Eigenschaften seines Eltern-Interfaces, VRDisplay.

VRDisplay.displayId Schreibgeschützt

Gibt die ID für dieses spezifische VRDevice zurück. Die ID sollte sich über Browser-Neustarts hinweg nicht ändern, sodass Konfigurationsdaten basierend darauf gespeichert werden können.

VRDisplay.displayName Schreibgeschützt

Ein lesbarer Name, um das VRDevice zu identifizieren.

Beispiele

Das folgende Beispiel verwendet die WebVR API, um die Ansicht einer einfachen 2D-Canvas-Szene in jedem Frame einer requestAnimationFrame-Schleife zu aktualisieren.

js
function setView() {
  const posState = gPositionSensor.getState();
  if (posState.hasPosition) {
    posPara.textContent = `Position: x${roundToTwo(
      posState.position.x,
    )} y${roundToTwo(posState.position.y)} z${roundToTwo(posState.position.z)}`;
    xPos = -posState.position.x * WIDTH * 2;
    yPos = posState.position.y * HEIGHT * 2;
    zPos = -posState.position.z > 0.01 ? -posState.position.z : 0.01;
  }

  if (posState.hasOrientation) {
    orientPara.textContent = `Orientation: x${roundToTwo(
      posState.orientation.x,
    )} y${roundToTwo(posState.orientation.y)} z${roundToTwo(
      posState.orientation.z,
    )}`;
    xOrient = posState.orientation.x * WIDTH;
    yOrient = -posState.orientation.y * HEIGHT * 2;
    zOrient = posState.orientation.z * 180;
  }
}

Hier greifen wir auf ein VRPose-Objekt mithilfe von PositionSensorVRDevice.getState() zu und speichern es in posState. Wir prüfen dann, ob Positions- und Orientierungsinformationen im aktuellen Frame vorhanden sind, indem wir VRPose.position und VRPose.orientation verwenden (diese geben null zurück, wenn zum Beispiel das Head-Mounted Display ausgeschaltet ist oder nicht auf den Positionssensor zeigt, was zu einem Fehler führen würde).

Wir geben dann die x-, y- und z-Position und -Orientierungswerte zu Informationszwecken aus und verwenden diese Werte, um die Variablen xPos, yPos, zPos, xOrient, yOrient und zOrient zu aktualisieren, die verwendet werden, um die Szenen-Rendering in jedem Frame zu aktualisieren.

Browser-Kompatibilität

Siehe auch