Skip to content

Class: XRInputManager ​

Defined in: packages/xr-input/src/xr-input-manager.ts:87

Constructors ​

Constructor ​

new XRInputManager(options): XRInputManager

Defined in: packages/xr-input/src/xr-input-manager.ts:222

Parameters ​

options ​

XRInputOptions

Returns ​

XRInputManager

Properties ​

gamepads ​

readonly gamepads: Record<"left" | "right", StatefulGamepad>

Defined in: packages/xr-input/src/xr-input-manager.ts:143


gazeCandidates ​

gazeCandidates: readonly Object3D<Object3DEventMap>[] = []

Defined in: packages/xr-input/src/xr-input-manager.ts:133

Gaze-eligible Object3D roots, republished by the host every frame before XRInputManager.update. Gaze deliberately uses an explicit candidate list rather than raycasting the scene: the cone cast is O(candidates), and gaze should only consider objects that opted in.


gazePointer ​

readonly gazePointer: GazePointer

Defined in: packages/xr-input/src/xr-input-manager.ts:100

Single global gaze pointer — gaze has no handedness, so it sits beside XRInputManager.multiPointers rather than inside them.

Constructed unconditionally so systems (GrabSystem, GazeSystem) can hold a stable reference, but idle until XRInputManager.gazeEnabled is set. Nothing here costs a frame while gaze is off.


multiPointers ​

readonly multiPointers: Record<"left" | "right", MultiPointer>

Defined in: packages/xr-input/src/xr-input-manager.ts:90


visualAdapters ​

readonly visualAdapters: object

Defined in: packages/xr-input/src/xr-input-manager.ts:148

controller ​

controller: object

controller.left ​

left: XRControllerVisualAdapter

controller.right ​

right: XRControllerVisualAdapter

hand ​

hand: object

hand.left ​

left: XRHandVisualAdapter

hand.right ​

right: XRHandVisualAdapter

left ​

left: Signal<XRInputVisualAdapter>

right: Signal<XRInputVisualAdapter>


xrOrigin ​

readonly xrOrigin: XROrigin

Defined in: packages/xr-input/src/xr-input-manager.ts:88

Accessors ​

gazeEnabled ​

Get Signature ​

get gazeEnabled(): boolean

Defined in: packages/xr-input/src/xr-input-manager.ts:108

Master switch for the gaze pipeline, flipped on by GazeSystem when the project opts into the gaze XR feature. While false, the gaze pose is never sampled, no cone cast runs, no pointer events are dispatched, and the pointer's reticle and ray space stay out of the rig entirely.

Returns ​

boolean

Set Signature ​

set gazeEnabled(enabled): void

Defined in: packages/xr-input/src/xr-input-manager.ts:112

Parameters ​
enabled ​

boolean

Returns ​

void

Methods ​

getPrimaryInputSource() ​

getPrimaryInputSource(handedness): XRInputSource

Defined in: packages/xr-input/src/xr-input-manager.ts:409

Get the primary input source for a given handedness. Returns the XRInputSource that is currently active for left or right hand.

Parameters ​

handedness ​

"left" | "right"

Returns ​

XRInputSource


getSelectState() ​

getSelectState(handedness): Readonly<HandSelectState>

Defined in: packages/xr-input/src/xr-input-manager.ts:421

Get this frame's select state for the primary input source of a given handedness, as the hand and gaze pointers see it. Unlike gamepads[handedness], this also covers hand sources that expose no Gamepad, whose pinch edges come from the session's select events.

Parameters ​

handedness ​

"left" | "right"

Returns ​

Readonly<HandSelectState>


isPrimary() ​

isPrimary(deviceType, handedness): boolean

Defined in: packages/xr-input/src/xr-input-manager.ts:401

Parameters ​

deviceType ​

"controller" | "hand"

handedness ​

"left" | "right"

Returns ​

boolean


update() ​

update(xrManager, delta, time): void

Defined in: packages/xr-input/src/xr-input-manager.ts:279

Parameters ​

xrManager ​

WebXRManager

delta ​

number

time ​

number

Returns ​

void

Privacy | Terms