API

Class WebXRExperienceHelper

Base set of functionality needed to create an XR experience (WebXRSessionManager, Camera, StateManagement, etc.)

Implements

Index
camera: WebXRCamera

Camera used to render xr content

featuresManager: WebXRFeaturesManager

A features manager for this xr session

onInitialXRPoseSetObservable: Observable<WebXRCamera> = ...

Observers registered here will be triggered after the camera's initial transformation is set This can be used to set a different ground level or an extra rotation.

Note that ground level is considered to be at 0. The height defined by the XR camera will be added to the position set after this observable is done executing.

onStateChangedObservable: Observable<WebXRState> = ...

Fires when the state of the experience helper has changed

sessionManager: WebXRSessionManager

Session manager used to keep track of xr session

state: WebXRState = WebXRState.NOT_IN_XR

The current state of the XR experience (eg. transitioning, in XR or not in XR)

  • Enable spectator mode for desktop VR experiences. When spectator mode is enabled a camera will be attached to the desktop canvas and will display the first rig camera's view on the desktop canvas. Please note that this will degrade performance, as it requires another camera render. It is also not recommended to enable this in devices like the quest, as it brings no benefit there.

    Parameters

    • Optionaloptions: WebXRSpectatorModeOption

      giving WebXRSpectatorModeOption for specutator camera to setup when the spectator mode is enabled.

    Returns void

  • Enters XR mode (This must be done within a user interaction in most browsers eg. button click)

    Parameters

    • sessionMode: XRSessionMode

      options for the XR session

    • referenceSpaceType: XRReferenceSpaceType

      frame of reference of the XR session

    • OptionalrenderTarget: WebXRRenderTarget<WebGLRenderingContext, XRWebGLLayer>

      the output canvas that will be used to enter XR mode

    • sessionCreationOptions: XRSessionInit = {}

      optional XRSessionInit object to init the session with

    Returns Promise<WebXRSessionManager>

    promise that resolves after xr mode has entered