Class: InputSystem
Defined in: packages/core/src/input/input-system.ts:45
Samples XR poses (hands/controllers/head) and gamepads, curates the set of interactables for pointer raycasting, and attaches minimal event listeners.
Remarks
- Scheduled after player movement so pointers reflect updated transforms.
- Maintains type-specific descendant arrays for optimized pointer intersection.
- Adds transient
Hovered/Pressedtags so other systems can react declaratively.
Example
export class HighlightSystem extends createSystem({
items: { required: [RayInteractable] }
}) {
update() {
this.queries.items.entities.forEach(e => {
e.object3D.visible = !e.hasComponent(Pressed);
})
}
}Extends
System<{ }, {distanceGrabbables: {required: (Component<{orientation: {default: [number,number,number,number];type:Vec4; };parent: {default:any;type:Entity; };position: {default: [number,number,number];type:Vec3; };scale: {default: [number,number,number];type:Vec3; }; }> |Component<{detachOnGrab: {default:false;type:Boolean; };movementMode: {default:string;enum: {MoveAtSource:string;MoveFromTarget:string;MoveTowardsTarget:string;RotateAtSource:string; };type:Enum; };moveSpeedFactor: {default:number;type:Float32; };returnToOrigin: {default:false;type:Boolean; };rotate: {default:true;type:Boolean; };rotateMax: {default: [number,number,number];type:Vec3; };rotateMin: {default: [number,number,number];type:Vec3; };scale: {default:true;type:Boolean; };scaleMax: {default: [number,number,number];type:Vec3; };scaleMin: {default: [number,number,number];type:Vec3; };targetPositionOffset: {default: [number,number,number];type:Vec3; };targetQuaternionOffset: {default: [number,number,number,number];type:Vec4; };translate: {default:true;type:Boolean; };translateMax: {default: [number,number,number];type:Vec3; };translateMin: {default: [number,number,number];type:Vec3; }; }>)[]; };oneHandGrabbables: {required: (Component<{orientation: {default: [number,number,number,number];type:Vec4; };parent: {default:any;type:Entity; };position: {default: [number,number,number];type:Vec3; };scale: {default: [number,number,number];type:Vec3; }; }> |Component<{rotate: {default:true;type:Boolean; };rotateMax: {default: [number,number,number];type:Vec3; };rotateMin: {default: [number,number,number];type:Vec3; };translate: {default:true;type:Boolean; };translateMax: {default: [number,number,number];type:Vec3; };translateMin: {default: [number,number,number];type:Vec3; }; }>)[]; };pokeInteractables: {required:Component<{ }>[]; };rayInteractables: {required:Component<{ }>[]; };twoHandsGrabbables: {required: (Component<{orientation: {default: [number,number,number,number];type:Vec4; };parent: {default:any;type:Entity; };position: {default: [number,number,number];type:Vec3; };scale: {default: [number,number,number];type:Vec3; }; }> |Component<{rotate: {default:true;type:Boolean; };rotateMax: {default: [number,number,number];type:Vec3; };rotateMin: {default: [number,number,number];type:Vec3; };scale: {default:true;type:Boolean; };scaleMax: {default: [number,number,number];type:Vec3; };scaleMin: {default: [number,number,number];type:Vec3; };translate: {default:true;type:Boolean; };translateMax: {default: [number,number,number];type:Vec3; };translateMin: {default: [number,number,number];type:Vec3; }; }>)[]; }; },this>
Constructors
Constructor
new InputSystem(
_w,_qm,_p):InputSystem
Defined in: node_modules/.pnpm/elics@3.4.2/node_modules/elics/lib/system.d.ts:76
Parameters
_w
_qm
QueryManager
_p
number
Returns
InputSystem
Inherited from
createSystem( { /** Entities interactable via ray pointer */ rayInteractables: { required: [RayInteractable, Transform] }, /** Entities interactable via touch/poke pointer */ pokeInteractables: { required: [PokeInteractable, Transform] }, /** One-hand grabbable entities */ oneHandGrabbables: { required: [OneHandGrabbable, Transform] }, /** Two-hands grabbable entities */ twoHandsGrabbables: { required: [TwoHandsGrabbable, Transform] }, /** Distance grabbable entities */ distanceGrabbables: { required: [DistanceGrabbable, Transform] }, }, {}, ).constructor
Properties
camera
readonlycamera:PerspectiveCamera
Defined in: packages/core/src/ecs/system.ts:60
Inherited from
cleanupFuncs
readonlycleanupFuncs: () =>void[]
Defined in: packages/core/src/ecs/system.ts:63
Returns
void
Inherited from
config
config:
SystemConfigSignals<S>
Defined in: packages/core/src/ecs/system.ts:48
Inherited from
createEntity()
createEntity: () =>
Entity
Defined in: packages/core/src/ecs/system.ts:69
Returns
Entity
Inherited from
globals
globals:
Record<string,any>
Defined in: packages/core/src/ecs/system.ts:53
Inherited from
input
readonlyinput:XRInputManager
Defined in: packages/core/src/ecs/system.ts:58
Inherited from
isPaused
isPaused:
boolean
Defined in: packages/core/src/ecs/system.ts:47
Inherited from
player
readonlyplayer:XROrigin
Defined in: packages/core/src/ecs/system.ts:57
Inherited from
priority
priority:
number
Defined in: packages/core/src/ecs/system.ts:52
Inherited from
queries
queries:
Record<keyofQ,Query>
Defined in: packages/core/src/ecs/system.ts:49
Inherited from
queryManager
queryManager:
QueryManager
Defined in: packages/core/src/ecs/system.ts:51
Inherited from
renderer
readonlyrenderer:WebGLRenderer
Defined in: packages/core/src/ecs/system.ts:61
Inherited from
scene
readonlyscene:Scene
Defined in: packages/core/src/ecs/system.ts:59
Inherited from
visibilityState
readonlyvisibilityState:Signal<VisibilityState>
Defined in: packages/core/src/ecs/system.ts:62
Inherited from
world
world:
World
Defined in: packages/core/src/ecs/system.ts:50
Inherited from
xrFrame
xrFrame:
XRFrame
Defined in: packages/core/src/ecs/system.ts:55
Inherited from
xrManager
xrManager:
WebXRManager
Defined in: packages/core/src/ecs/system.ts:54
Inherited from
Methods
init()
init():
void
Defined in: packages/core/src/input/input-system.ts:80
Returns
void
Overrides
play()
play():
void
Defined in: packages/core/src/ecs/system.ts:67
Returns
void
Inherited from
stop()
stop():
void
Defined in: packages/core/src/ecs/system.ts:68
Returns
void
Inherited from
update()
update(
delta,time):void
Defined in: packages/core/src/input/input-system.ts:147
Parameters
delta
number
time
number
Returns
void