FirstPersonCamera

@three-blocks/pro
new FirstPersonCamera(physics : Object, options : Object)
Extends
PhysicsCamera

Create a FirstPersonCamera.

Constructor Parameters
physicsObject
Physics instance
optionsoptionalObject
Camera options
Default is {}.
  • canvasHTMLCanvasElement
    Canvas element for pointer lock
  • targetoptionalTHREE.Object3D
    Player mesh to follow
  • eyeHeightoptionalnumber
    Eye height offset from target position
    Default is 1.7.
  • sensitivityoptionalObject
    Mouse sensitivity
    Default is { x: 2, y: 2 }.
  • pitchLimitsoptionalArray<number>
    Vertical look limits in degrees
    Default is [-85, 85].
  • fovoptionalnumber
    Field of view
    Default is 70.

Properties

.canvas : HTMLCanvasElement

Canvas element for pointer lock.

.eyeHeight : number

Eye height offset from target position.

.sensitivity : Object

Mouse sensitivity for rotation.

.pitchLimits : Array.

Vertical look limits in degrees [min, max].

.locked : boolean

Whether pointer lock is currently active.

.yaw : number

Current yaw angle in radians.

.pitch : number

Current pitch angle in radians.

Methods

on#

on(event : 'lock'|'unlock', callback : function) : this

Register an event callback.

Parameters
event'lock' | 'unlock'
Event name
callbackfunction
Callback function
Returns
this — For chaining

off#

off(event : 'lock'|'unlock', callback : function) : this

Remove an event callback.

Parameters
event'lock' | 'unlock'
Event name
callbackfunction
Callback to remove
Returns
this — For chaining

setYaw#

setYaw(radians : number) : this

Set the yaw angle (horizontal rotation).

Parameters
radiansnumber
Yaw angle in radians
Returns
this — For chaining

setPitch#

setPitch(radians : number) : this

Set the pitch angle (vertical rotation).

Parameters
radiansnumber
Pitch angle in radians
Returns
this — For chaining

update#

update(delta : number)

Update camera state. Call each frame.

Parameters
deltanumber
Time delta in seconds

lock#

lock()

Manually request pointer lock.

dispose#

dispose()

Clean up resources and event listeners.