PositionSensorVRDevice
Deprecated
Avoid using this feature in new projects. Development of the WebVR API halted in favor of WebXR. This feature may be a candidate for removal from web standards or browsers.>
Consider using the following features instead: WebXR.>
Nicht standardisiert: Diese Funktion ist nicht standardisiert. Wir raten davon ab, nicht-standardisierte Funktionen auf produktiven Webseiten zu verwenden, da sie nur von bestimmten Browsern unterstützt werden und sich in Zukunft ändern oder entfernt werden können. Unter Umständen kann sie jedoch eine geeignete Option sein, wenn es keine standardisierte Alternative gibt.
Das PositionSensorVRDevice-Interface der WebVR API repräsentiert den Positionssensor der VR-Hardware. Sie können Informationen wie die aktuelle Position und Ausrichtung des Sensors in Bezug auf das Head-Mounted Display über die Methode PositionSensorVRDevice.getState() abrufen.
Instanzmethoden
PositionSensorVRDevice.getState()-
Gibt den aktuellen Zustand des Positionssensors für den aktuellen Frame zurück (z.B. innerhalb des aktuellen
window.requestAnimationFrameCallbacks) oder für den vorherigen Frame, enthalten in einemVRPose-Objekt. Dies ist die Methode, die Sie normalerweise verwenden wollen, im Gegensatz zugetImmediateState(). PositionSensorVRDevice.getImmediateState()-
Gibt den aktuellen, unmittelbaren Zustand des Positionssensors zurück. Dies ist nur selten zu verwenden, für bestimmte spezielle Verwendungszwecke, wie z.B. das Abtasten der unmittelbaren Position eines Handorientierungssensors — oder zumindest wird es in Zukunft sein.
PositionSensorVRDevice.resetSensor()-
Kann verwendet werden, um den Sensor zurückzusetzen, wenn gewünscht, wodurch die Positions- und Orientierungswerte auf Null zurückgesetzt werden.
Instanzeigenschaften
Dieses Interface definiert keine eigenen Eigenschaften, erbt jedoch die Eigenschaften seines übergeordneten Interfaces, VRDisplay.
VRDisplay.displayIdSchreibgeschützt-
Gibt die ID für dieses spezielle
VRDevicezurück. Die ID sollte sich über Browser-Neustarts hinweg nicht ändern, was es ermöglicht, Konfigurationsdaten darauf basierend zu speichern. VRDisplay.displayNameSchreibgeschützt-
Ein menschenlesbarer Name zur Identifizierung des
VRDevice.
Beispiele
Das folgende Beispiel verwendet die WebVR API, um die Ansicht einer einfachen 2D-Canvas-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 z.B. das Head-Mounted Display ausgeschaltet ist oder nicht auf den Positionssensor zeigt, was einen Fehler verursachen würde).
Wir geben dann die x-, y- und z-Positions- und Orientierungswerte zu Informationszwecken aus und verwenden diese Werte, um die Variablen xPos, yPos, zPos, xOrient, yOrient und zOrient zu aktualisieren, die dazu verwendet werden, das Szenen-Rendering in jedem Frame zu aktualisieren.
Browser-Kompatibilität
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.