XRInputSourceEvent

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Die XRInputSourceEvent-Schnittstelle der WebXR Device API beschreibt ein Ereignis, das auf einem WebXR-Benutzereingabegerät, wie einem Handcontroller, einem Blickverfolgungssystem oder einem Bewegungserkennungssystem, aufgetreten ist. Genauer gesagt, repräsentieren sie eine Änderung im Zustand einer XRInputSource.

Um mehr über die Handhabung von Eingaben in einem WebXR-Projekt zu erfahren, lesen Sie den Artikel Eingaben und Eingabequellen.

Event XRInputSourceEvent

Konstruktor

XRInputSourceEvent()

Erstellt und gibt ein neues XRInputSourceEvent-Objekt zurück, dessen Eigenschaften denen im bereitgestellten eventInitDict-Wörterbuch entsprechen.

Instanz-Eigenschaften

frame Nur lesbar

Ein XRFrame-Objekt, das die benötigten Informationen über den Ereignisrahmen bereitstellt, in dem das Ereignis aufgetreten ist. Dieser Rahmen könnte in der Vergangenheit gerendert worden sein, anstatt ein aktueller Rahmen zu sein. Da dies ein Ereignisrahmen ist, nicht ein Animationsrahmen, können Sie die XRFrame-Methode getViewerPose() nicht darauf aufrufen; verwenden Sie stattdessen getPose().

inputSource Nur lesbar

Ein XRInputSource-Objekt, das angibt, welche Eingabequelle das Eingabeereignis erzeugt hat.

Instanz-Methoden

Die XRInputSourceEvent-Schnittstelle definiert keine Methoden; jedoch werden mehrere Methoden von der Elternschnittstelle, Event, geerbt.

Ereignisarten

select

Wird an eine XRSession gesendet, wenn die sendende Eingabequelle eine primäre Aktion vollständig abgeschlossen hat.

selectend

Wird an eine XRSession gesendet, wenn eine laufende primäre Aktion endet oder wenn eine Eingabequelle mit einer laufenden primären Aktion vom System getrennt wurde.

selectstart

Wird an eine XRSession gesendet, wenn eine Eingabequelle ihre primäre Aktion beginnt, was darauf hinweist, dass der Benutzer mit einem befehlsähnlichen Eingang begonnen hat, z. B. das Drücken eines Triggers oder Knopfes, das Aussprechen eines Sprachbefehls, das Tippen auf ein Touchpad oder Ähnliches.

squeeze

Wird an eine XRSession gesendet, wenn die sendende Eingabequelle eine primäre Quetschaktion vollständig abgeschlossen hat.

squeezeend

Wird an eine XRSession gesendet, wenn eine laufende primäre Quetschaktion endet oder wenn eine Eingabequelle mit einer laufenden primären Quetschaktion getrennt wird.

squeezestart

Wird an eine XRSession gesendet, wenn eine Eingabequelle ihre primäre Quetschaktion beginnt, was darauf hinweist, dass der Benutzer begonnen hat, den Controller zu greifen, zu quetschen oder zu fassen.

Beispiele

Der untenstehende Code richtet Handler für primäre Aktionsereignisse ein, um festzustellen, wann der Benutzer auf Objekte in der Szene klickt (schießt/anstupst/was auch immer).

js
xrSession.addEventListener("select", (event) => {
  let targetRayPose = event.frame.getPose(
    event.inputSource.targetRaySpace,
    myRefSpace,
  );

  if (targetRayPose) {
    let hit = myHitTest(targetRayPose.transform);
    if (hit) {
      /* handle the hit */
    }
  }
});

Spezifikationen

Specification
WebXR Device API
# xrinputsourceevent-interface

Browser-Kompatibilität

BCD tables only load in the browser