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: handedness 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 handedness gibt an, mit welcher Hand des Benutzers die WebXR-Eingabequelle verbunden ist oder ob sie überhaupt keiner Hand zugeordnet ist.

Wert

Ein String, der anzeigt, ob der Eingaberegler in einer der Hände des Benutzers gehalten wird und, falls ja, in welcher Hand. Der Wert ist einer der folgenden:

none

Der Eingaberegler ist keiner Hand des Benutzers zugeordnet.

left

Der Eingaberegler wird in der linken Hand des Benutzers gehalten, getragen oder ist daran befestigt.

Der Eingaberegler wird in der rechten Hand des Benutzers gehalten, getragen oder ist daran befestigt.

Verwendungshinweise

Wenn die Eingabequelle nicht mit einer Hand des Benutzers verbunden ist (sei es durch Halten, Befestigen oder Tragen), ist der Wert von handedness none. Dies kann beispielsweise auf eine Eingabequelle hindeuten, die nicht handgehalten ist, wie etwa Steuerungen, die in ein Headset eingebaut sind, oder ein Eingabegerät, das am Kopf oder Körper angebracht ist.

Beispiele

Ein wichtiges Anwendungsszenario für handedness ist die Bestimmung, in welcher Hand sich ein Controller befindet, damit Sie eine Darstellung dieser Hand (oder das Gerät, das diese Hand steuert) im virtuellen Raum zeichnen können.

js
function updateInputSources(session, frame, refSpace) {
  for (const source of session.inputSources) {
    if (source.gripSpace) {
      const gripPose = frame.getPose(source.gripSpace, refSpace);

      if (gripPose) {
        myRenderHandObject(gripPose, inputSource.handedness);
      }
    }
  }
}

Diese Funktion, die bei jedem Animationsframe (oder möglicherweise nur periodisch, je nach erforderlichem Grad an Glätte und etwaigen Leistungsbeschränkungen) aufgerufen wird, durchsucht die Liste der Eingabequellen und sucht nach solchen, die über einen gripSpace verfügen, der nicht null ist. Wenn ein gripSpace vorhanden ist, bedeutet das, dass die Eingabequelle ein handgehaltenes Gerät irgendeiner Art ist und nach Möglichkeit sichtbar gerendert werden sollte.

Wenn gripSpace nicht null ist, setzt die Funktion fort, die Pose für den gripSpace zu erhalten, die in den aktuellen Referenzraum transformiert wird. Vorausgesetzt, dass das dann gültig ist, wird eine Funktion namens myRenderHandObject() mit der Pose des Griffs und dem Wert von handedness aufgerufen. Diese zeichnet dann das entsprechende Modell, positioniert und geformt für die korrekte Hand.

Spezifikationen

Spezifikation
WebXR Device API
# dom-xrinputsource-handedness

Browser-Kompatibilität

Siehe auch