Optional ReadonlyclampKeep the eye pinned at heightM above the surface (true, the
default) or let it HOLD ITS ALTITUDE while moving — free flight, the eye
flies level over rising ground. Walk mode always clamps (you cannot walk
off the surface); this is the fly-mode lock. See
FirstPersonNavController.setClampToSurface.
Optional ReadonlyclimbWalk mode: the surface rise (m) the eye will still step/ramp over, measured across the look-ahead probe. Default 1.5.
NOTE it is a rise over the SPEED-SCALED probe distance
(max(2, speedMps × lookAheadS)), so the slope it actually permits is
atan(climbMaxM / probe) — 1.5 m reads as ≈37° at 2 m/s but only ≈14° at
the default 8 m/s. FirstPersonNavController.getClimbSlopeDeg
returns that live number (the widget shows it beside the slider).
Optional ReadonlyengageEase-in duration when entering first person, ms. Default 900.
Optional ReadonlyheightEye height above the surface, metres. Clamped to ≥ MIN_NAV_HEIGHT_M (2 ft); no maximum. Default 1.8 (eye level).
Optional ReadonlylookWalk mode: how far ahead the obstacle probe looks, seconds of travel (min 2 m). Default 0.75.
Optional ReadonlylookLook sensitivity, degrees of bearing per dragged pixel. Default 0.25.
Optional ReadonlymanageRaise the map's maxZoom to 25 while enabled so low heights are reachable
(default true; 25 is maplibre's MAX_TILE_ZOOM — elevation queries go
blind past it).
Optional ReadonlymodeObstacle behavior: 'fly' climbs over anything; 'walk' blocks at walls. Default 'fly'.
Optional ReadonlyscrollScroll wheel adjusts the eye height while enabled (default true).
Optional ReadonlyspeedMovement speed, metres/second. Default 8.
Construction options for createFirstPersonNav.