AbstractCreates a new camera instance
Unique identifier for this camera
Type of camera being created
VYLO Diob object for this camera
Reference to the CameraManager that owns this camera
ProtectedboundsCamera position bounds (Infinity = no limit)
ProtectedcachedCached camera position to avoid object churn
ProtectedcachedCached gizmo position to avoid object churn
ProtectedcachedCached transition position to avoid object churn
VYLO Diob object representing the camera
ReadonlygizmoColor used for gizmo visualization (hex value)
The length of the gizmo line
ReadonlyidUnique identifier for this camera instance
Whether this camera is currently the active view eye
Reference to the CameraManager that owns this camera
ProtectedoperationIf true, this action ignores all time scale (global and camera)
ProtectedoperationPer-action override time scale (temporary), null when not set
The owner/target this camera belongs to (GameInstance or Vector2D) This represents who the camera is attached to or following
Current position of the camera in world space
Previous position of the camera in world space (used for velocity tracking)
The random angle for the gizmo
ProtectedtimeCamera-specific time scale multiplier (1.0 = normal)
Whether to track the target's Z position and subtract it from the Y position. Enabled by default. Useful for 2.5D isometric-style games where height (Z) affects screen Y.
ProtectedtransitionTransition duration for X axis in milliseconds
ProtectedtransitionTransition duration for Y axis in milliseconds
ProtectedtransitionEasing function for X axis transitions
ProtectedtransitionEasing function for Y axis transitions
ProtectedtransitioningWhether this camera is currently transitioning to become the view eye
ProtectedtransitionTransition progress (0-1) when becoming view eye
ProtectedtransitionStarting position for transitions
ProtectedtransitionTarget position for transitions
ProtectedtransitionElapsed time for current transition
ReadonlytypeCamera type identifier
Current velocity of the camera in pixels per second
Getter for gizmoEnabled property
Setter for gizmoEnabled property that notifies CameraManager
Getter for isActive property
Setter for isActive property that notifies CameraManager
Whether to track the view eye's Z position (alias for trackTargetZ)
ProtectedapplyProtectedclampGets the owner/target this camera belongs to
The owner or null if not attached to anyone
ProtectedgetGets the Z value of a target if trackTargetZ is enabled, else returns 0. Used to subtract target height from Y position for 2.5D depth effects.
The target to get Z from
The target's z value, or 0 if tracking is disabled or target has no z
ProtectedgetProtectedgetGets the true camera position for a target (GameInstance or Vector2D) For GameInstance: returns center position (where camera should be) For Vector2D: returns the position directly Reuses cached object to avoid churn
ProtectedisChecks if a target is a Vector2D (has x, y properties but no mapName)
Target to check
True if target is Vector2D, false if GameInstance
Sets this camera as the active view eye.
Automatically performs a smooth seamless transition from the current view eye
using the manager's default transition settings (or custom options if provided).
Pass { duration: 0 } to force an immediate instant cut.
OptionalpOptions: TransitionCameraOptionsOptional transition options (duration, ease, matchVelocity, spring, etc.)
Sets camera position bounds (Infinity = no limit in that direction)
Minimum X position (use -Infinity for no limit)
Maximum X position (use Infinity for no limit)
Minimum Y position (use -Infinity for no limit)
Maximum Y position (use Infinity for no limit)
Sets the owner/target this camera belongs to
The owner to attach to
Sets transition settings for smooth camera switching
Transition settings with separate axis duration and ease
AbstractupdateProtectedupdate
Abstract base class for all camera types in the Lens system.
Provides shared functionality including shake effects, zoom, gizmo visualization, and lifecycle management. Each camera type extends this class with specialized behavior.
All cameras start active but are not the view eye until
setAsViewEye()is called.Example