PositionSensorVRDevice
Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, kann sie bereits aus den relevanten Webstandards entfernt worden sein, befindet sich im Prozess der Entfernung oder wird nur aus Kompatibilitätsgründen beibehalten. Vermeiden Sie die Verwendung und aktualisieren Sie gegebenenfalls bestehenden Code; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu treffen. Beachten Sie, dass diese Funktion jederzeit nicht mehr funktionieren kann.
Kein Standard: Diese Funktion ist nicht standardisiert und befindet sich nicht im Standardisierungsprozess. Verwenden Sie sie nicht auf Produktionsseiten, die auf das Web ausgerichtet sind: Sie wird nicht für alle Benutzer funktionieren. Außerdem kann es 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, eingeschlossen in einemVRPose
-Objekt. Dies ist die Methode, die Sie normalerweise verwenden möchten, im Gegensatz zugetImmediateState()
. PositionSensorVRDevice.getImmediateState()
Veraltet Nicht standardisiert-
Gibt den aktuellen augenblicklichen Zustand des Positionssensors zurück. Dies soll nur selten verwendet werden, für bestimmte spezielle Anwendungen, z. B. zum Abtasten der unmittelbaren Position eines Handorientierungssensors — oder zumindest soll es das in der Zukunft sein.
PositionSensorVRDevice.resetSensor()
Veraltet Nicht standardisiert-
Kann verwendet werden, um den Sensor bei Bedarf zurückzusetzen und die Positions- und Orientierungswerte auf null zurückzusetzen.
Instanzeigenschaften
Dieses Interface definiert keine eigenen Eigenschaften, aber es erbt die Eigenschaften seines Elterninterfaces, VRDisplay
.
VRDisplay.displayId
Nur lesbar-
Gibt die ID für dieses spezifische
VRDevice
zurück. Die ID sollte sich über Neustarts des Browsers hinweg nicht ändern, was es ermöglicht, Konfigurationsdaten basierend darauf zu speichern. VRDisplay.displayName
Nur lesbar-
Ein menschenlesbarer Name zur Identifizierung des
VRDevice
.
Beispiele
Das folgende Beispiel verwendet die WebVR API, um die Ansicht einer einfachen 2D-Leinwand-Szene in jedem Frame einer requestAnimationFrame
-Schleife zu aktualisieren.
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 zu, indem wir PositionSensorVRDevice.getState()
verwenden und es in posState
speichern. 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 oder nicht auf den Positionssensor gerichtet ist, 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 xPos
, yPos
, zPos
, xOrient
, yOrient
und zOrient
Variablen zu aktualisieren, die verwendet werden, um das Szenen-Rendering in jedem Frame zu aktualisieren.
Browser-Kompatibilität
BCD tables only load in the browser