Component Reference
ThirdPersonCamera
Shoulder follow camera with collision avoidance, mouse orbit, and scroll zoom. The most common third-person camera pattern used in action games, shooters, and open-world titles.
| Property | Description |
|---|---|
| Target | Transform to follow |
| Distance | Base follow distance behind the target |
| Distance Limits | Min/max zoom range |
| Height Offset | Vertical offset above the target |
| Shoulder Offset | Horizontal offset (positive = right shoulder, negative = left) |
| Smooth Position | Position lerp speed (higher = snappier) |
| Smooth Rotation | Rotation lerp speed (higher = snappier) |
| Zoom Step | Distance change per scroll tick |
| Collision Mask | Layers the collision spherecast detects |
| Collision Radius | Radius of the collision spherecast |
| Mouse Orbit | Enable right-click orbit |
| Orbit Speed | Horizontal and vertical orbit sensitivity |
| Invert Y | Flip vertical orbit direction |
| Pitch Limits | Min/max vertical look angle |
VehicleChaseCamera
Forza-style spring-arm chase camera. Uses a mass-spring-damper system for weighty, smooth camera movement. Supports multiple camera presets cycled by C key or mouse scroll.
| Property | Description |
|---|---|
| Target | Transform to follow (attach Rigidbody for velocity-based look-ahead) |
| Presets | Array of ChasePreset — one per ChaseMode |
| Look Ahead | How far ahead of the target the camera looks (creates sense of speed) |
| Max Drift Angle | Maximum camera orbit angle during a drift/slide |
| Collision Mask | Layers the collision spherecast detects |
| Collision Radius | Radius of the collision spherecast |
| Speed FOV Multiplier | FOV increase per unit of speed |
| Speed FOV Max | Maximum FOV increase from speed |
| Next Cam Key | Key to cycle to the next preset |
| Use Mouse Scroll | Enable mouse scroll to cycle presets |
ChasePreset
| Property | Description |
|---|---|
| Mode | Close, Medium, Far, Bumper, Cockpit, DriftOrbit |
| Distance | Follow distance behind the target |
| Height | Height offset above the target |
| Look Height Offset | Vertical offset for the look-at point |
| FOV | Camera field of view for this preset |
| Spring Stiffness | Spring-arm stiffness (higher = snappier, lower = floatier) |
| Spring Damping | Spring-arm damping (higher = less oscillation) |
ChaseModes
| Mode | Typical Use |
|---|---|
| Close | Tight chase — shows the vehicle in detail, dramatic sense of speed |
| Medium | Balanced chase — default driving view |
| Far | Wide chase — maximum visibility, good for exploration |
| Bumper | Low-to-ground front bumper view — maximum sense of speed |
| Cockpit | First-person from inside the vehicle |
| DriftOrbit | Camera orbits to show drifting/sliding |
Drift behavior: When the target's velocity direction differs from its forward direction (drifting), the camera orbits around the target to show the slide angle. The orbit is clamped by maxDriftAngle.
Spring-arm physics: The camera doesn't snap to its target position — it uses a mass-spring-damper system. The springStiffness controls how strongly the camera pulls toward its target; springDamping controls how quickly oscillations settle. Higher stiffness + higher damping = responsive but controlled. Lower stiffness = loose, weighty feel.
Speed FOV: As the target speeds up, the camera's FOV widens by speed × speedFovMultiplier, capped at speedFovMax. This creates a natural sense of acceleration.
FreeLookCamera
Cinemachine-style free-look camera with three orbital rigs. Vertical mouse movement blends between the Top, Middle, and Bottom rigs, each with independent height and radius.
| Property | Description |
|---|---|
| Target | Transform to orbit |
| Rigs | Array of FreeLookRig — Top, Middle, Bottom with blend weights |
| Axis X Speed | Horizontal orbit speed |
| Axis Y Speed | Vertical orbit speed |
| Y Min | Lowest pitch angle (looking down) |
| Y Max | Highest pitch angle (looking up) |
| Smooth Time | SmoothDamp time constant |
| Auto Rotate | Slowly rotates the camera around the target when idle |
| Auto Rotate Speed | Auto-rotation speed in degrees per second |
FreeLookRig
| Property | Description |
|---|---|
| Height | Camera height relative to the target |
| Radius | Orbit radius at this rig |
| Blend Weight | Vertical blend distribution (all weights should sum to 1) |
Blend behavior: Vertical mouse input maps to a 0–1 range between Y Min and Y Max. This value is distributed across the rigs by their blendWeight values, producing smooth transitions between rig heights and radii.
FirstPersonController
Full first-person controller with mouse look, movement, sprint, crouch, jump, and head bob.
| Property | Description |
|---|---|
| Look | |
| Mouse Sensitivity | Look sensitivity multiplier |
| Invert Y | Flip vertical look |
| Pitch Limits | Min/max vertical look angle |
| Movement | |
| Walk Speed | Movement speed when walking |
| Run Speed | Movement speed when sprinting (hold Shift) |
| Crouch Speed | Movement speed when crouching (hold Ctrl) |
| Acceleration | How quickly the player reaches full speed |
| Jump Force | Vertical impulse for jumping |
| Gravity | Downward acceleration |
| Head Bob | |
| Bob Frequency | Speed of the head bob oscillation |
| Bob Amplitude | Intensity of the head bob |
| Camera Holder | Transform of the camera (child of the player GameObject) |
| Input | |
| Run Key | KeyCode for sprinting |
| Crouch Key | KeyCode for crouching |
| Jump Key | KeyCode for jumping |
Head bob: Sinusoidal oscillation on the camera holder's local position. Bob time resets when the player stops moving. Only active when grounded.
Cursor lock: Press ESC to toggle cursor lock. The controller starts with the cursor locked.
CharacterController: Auto-added to the GameObject if not present. Height is adjusted dynamically when crouching (50% of base height).
RTSCamera
Real-time strategy camera with edge-scroll panning, zoom, and rotation.
| Property | Description |
|---|---|
| Move Speed | Base camera pan speed |
| Sprint Multiplier | Speed multiplier when holding sprint key |
| Zoom Speed | Zoom sensitivity per scroll tick |
| Rotate Speed | Rotation speed in degrees per second |
| Edge Scroll Margin | Pixels from screen edge to trigger panning |
| Edge Scroll Enabled | Toggle edge-scroll behavior |
| Zoom Limits | Min/max camera height |
| Sprint Key | KeyCode for sprinting |
| Rotate Left Key | KeyCode for rotating left |
| Rotate Right Key | KeyCode for rotating right |
Edge scrolling: When the mouse cursor is within edgeScrollMargin pixels of any screen edge, the camera pans in that direction. Edge scrolling can be disabled while keeping WASD movement.
TopDownCamera
Top-down or isometric camera that follows a target from above.
| Property | Description |
|---|---|
| Target | Transform to follow |
| Height | Base height above the target |
| Angle | Camera pitch angle (45 = typical isometric, 90 = straight down) |
| Zoom Limits | Min/max height range |
| Zoom Speed | Height change per scroll tick |
| Smooth Follow | Position lerp speed |
| Rotate With Target | Camera rotation matches target's yaw |
| Orthographic | Toggle orthographic projection (auto-sets orthographic size) |
Orthographic mode: When enabled, the camera switches to orthographic projection. The orthographicSize is automatically set to height × 0.5.
SideScrollCamera
2D side-scrolling camera with deadzone-based horizontal follow and vertical tracking toggle.
| Property | Description |
|---|---|
| Target | Transform to follow |
| Look Ahead | How far ahead of the target the camera looks (based on target's forward) |
| Deadzone Width | Horizontal deadzone — camera only moves when the target exits this zone |
| Deadzone Height | Vertical deadzone height |
| Smooth X | Horizontal follow smooth speed |
| Smooth Y | Vertical follow smooth speed |
| Vertical Offset | Fixed vertical offset from the target |
| X Bounds | Horizontal confinement limits |
| Y Bounds | Vertical confinement limits |
| Enable Bounds | Toggle boundary confinement |
| Lock Z | Lock camera Z position |
| Z Position | Z position when locked |
| Track Vertical | When disabled, camera ignores vertical movement |
Deadzone behavior: The camera doesn't track the target's every pixel — it allows the target to move within a deadzone box before the camera follows. The look-ahead shifts the deadzone center in the direction the target is facing.
DollyTrack
Spline path camera that moves along a series of waypoints.
| Property | Description |
|---|---|
| Waypoints | Array of Transform positions defining the path |
| Speed | Movement speed along the path (units per second) |
| Look Ahead | How far ahead on the path the camera looks |
| Look Mode | PathDirection (look along the path) or Target (look at Look Target) |
| Look Target | Transform to face when Look Mode is Target |
| Loop | When enabled, path restarts from the beginning |
| Auto Play | When enabled, camera moves automatically |
| Speed Curve | AnimationCurve that scales speed along the path (1 = full speed) |
| Manual Position | Slider (0–1) for manual position when Auto Play is off |
Events:
onWaypointReached(GameObject)— triggered when passing each waypointonPathComplete(GameObject)— triggered when the path ends (non-looping)
Control methods:
Play()— start auto-play from the beginningPause()— pause auto-playStop()— stop and reset to position 0
CameraShake
Perlin-noise-based camera shake with configurable profiles.
| Property | Description |
|---|---|
| Default Profile | ShakeProfile used when calling Shake() without arguments |
ShakeProfile
| Property | Description |
|---|---|
| Amplitude | Shake intensity |
| Frequency | Speed of shake oscillation |
| Duration | Shake length in seconds |
| Decay | AnimationCurve that scales amplitude over the shake duration |
Events:
onShakeStart(GameObject)— triggered when a shake beginsonShakeComplete(GameObject)— triggered when a shake ends (or whenStop()is called)
Shake methods:
Shake()— use the default profileShake(ShakeProfile profile)— use a custom profileShake(float amplitude, float frequency, float duration)— one-off shakeStop()— immediately stop all shaking
Shake is applied to the camera's localPosition, so it works independently of the camera's world position. Supports 3D shake (X/Y with full amplitude, Z with half amplitude).
ObjectInspector
Drag-to-rotate inspection camera for examining objects. Left-click drag to orbit, scroll to zoom.
| Property | Description |
|---|---|
| Target | Transform to inspect |
| Default Distance | Starting distance from the target |
| Distance Limits | Min/max zoom range |
| Orbit Speed | Mouse orbit sensitivity |
| Zoom Speed | Scroll zoom sensitivity |
| Smooth Damp | SmoothDamp time constant for position |
| Auto Rotate Speed | Degrees per second when not interacting (0 = no auto-rotate) |
| Invert Y | Flip vertical orbit direction |
Methods:
FocusOn(Transform newTarget)— switch the inspection target
CameraManager
Singleton system for managing multiple cameras and blending between them.
| Property | Description |
|---|---|
| Target Camera | The Camera this manager controls (defaults to Camera.main) |
| Default Blend | Cut (instant) or Lerp (smooth interpolation) |
| Blend Duration | Time in seconds for Lerp transitions |
Events:
onBlendStart(GameObject)— triggered when a blend beginsonBlendComplete(GameObject)— triggered when a blend finishes
CameraState
| Property | Description |
|---|---|
| Name | Identifier for lookup |
| Camera Component | The MonoBehaviour component to enable/disable |
| Priority | Priority value (for future sorting) |
Methods:
RegisterState(string name, MonoBehaviour component, int priority)— add a camera stateUnregisterState(CameraState state)— remove a camera stateBlendTo(CameraState state, float? duration)— smooth blend to a stateBlendTo(string stateName)— blend by nameCutTo(CameraState state)— instant switch to a stateCutTo(string stateName)— instant switch by nameGetState(string name)— find a state by name
Usage pattern:
CameraManager.Instance.RegisterState("Follow", thirdPersonCamera);
CameraManager.Instance.RegisterState("Free", flyCam);
CameraManager.Instance.BlendTo("Follow", 2f);
CameraCollisionHandler
Standalone collision avoidance module. Attach to any camera to prevent it from passing through walls.
| Property | Description |
|---|---|
| Origin | Transform to cast from (usually the player/vehicle) |
| Collision Radius | Radius of the spherecast |
| Smooth Return | How quickly the camera slides forward when obstructed |
| Collision Mask | Layers detected by the spherecast |
Works with any camera component — simply add it as a child component and assign the origin.
ConfinerCamera
Confines the camera within box or sphere bounds.
| Property | Description |
|---|---|
| Shape | Box (axis-aligned) or Sphere |
| Bounds | Box boundary (center + size) |
| Sphere Radius | Sphere boundary radius |
| Smooth Time | SmoothDamp time constant for return |
| Confine X / Y / Z | Per-axis confinement toggle |
Event:
onConfined(GameObject)— triggered when the camera is pushed back inside the bounds
Methods:
SetBounds(Bounds newBounds)— update the confinement boxSetSphereRadius(float radius)— update the sphere radius
Legacy Components (v1.1)
MouseOrbit
| Property | Description |
|---|---|
| Target | Transform to orbit |
| Distance | Orbit distance from target |
| Limit Distance | Clamp zoom range |
| Distance Limits | Min/max zoom |
| Axis Speed | Orbit sensitivity (horizontal, vertical) |
| Invert | Flip orbit direction |
| Mouse Scroll Zoom | Enable scroll zoom |
| Zoom Step | Zoom per scroll tick |
| Limit Height | Clamp vertical angle |
| Height Limits | Min/max vertical angle |
| Limit Orbit | Clamp horizontal angle |
| Orbit Limits | Min/max horizontal angle |
| Smooth Damp | Overall smooth interpolation |
| Smooth Zoom | Smooth zoom interpolation |
| Smooth Zoom Step | Zoom interpolation speed |
| Trigger | AlwaysOn, LeftClick, or RightClick |
MouseLook
| Property | Description |
|---|---|
| Mouse Sensitivity | Look sensitivity multiplier |
FlyCam
| Property | Description |
|---|---|
| Forward / Backwards / Left / Right | KeyCode bindings for movement |
| Move Speed | Movement speed |
| Mouse Sensitivity | Look sensitivity |
FollowTarget
| Property | Description |
|---|---|
| Target | Transform to follow |
| Distance | Follow distance |
| Height | Height offset |
| Smooth Damp | SmoothDamp time constant |
LookatTracking
| Property | Description |
|---|---|
| Target | Transform to face |
AutoOrbit
| Property | Description |
|---|---|
| Target | Transform to orbit |
| Look At Target | Face the target while orbiting |
| Speed | Orbit speed in degrees per second |
AutoFrameTracker
| Property | Description |
|---|---|
| Is Enabled | Toggle auto-framing |
| Smooth Speed | Camera movement smoothing |
| Show Trackers | Display tracking gizmos |
| Tracking Color | Gizmo color |
| Track Objects | List of objects with screen-position targets (percentage-based X/Y) |
WaypointFollow
| Property | Description |
|---|---|
| Move Speed | Movement speed between waypoints |
| Look Speed | Rotation speed toward the look target |
| Mode | Forward (stop at end), PingPong, Loop |
| Look Mode | NextWaypoint or Target |
| Look Target | Transform to face when Look Mode is Target |
| Waypoints | Array of Transform positions |
Events:
onWaypointReached(GameObject)— triggered when reaching each waypoint
FOVController
| Property | Description |
|---|---|
| Target FOV | FOV to zoom to |
| Adjust Step | FOV change speed |
| Trigger | LeftClick, RightClick, Unbind |
| Type | Hold (while button held) or Toggle (press on/off) |
WobbleCamera
| Property | Description |
|---|---|
| Wobble Speed | Frequency of the projection matrix oscillation |
ProximityHide
| Property | Description |
|---|---|
| Radius | Detection sphere radius |
| Only Affect Tag | Filter by tag |
| Tag To Compare | Tag to filter |
Events:
onHideCollider(GameObject)— triggered when a collider is hiddenonShowCollider(GameObject)— triggered when a collider is shown
CompositionTools
| Property | Description |
|---|---|
| Draw Action Safe | Toggle action-safe zone overlay |
| Draw Title Safe | Toggle title-safe zone overlay |
| Draw Center Mark | Toggle center crosshair |
| Action Safe Margin | Margin in pixels |
| Title Safe Margin | Margin in pixels |
| Action Safe Color | Gizmo color |
| Title Safe Color | Gizmo color |
| Center Mark Color | Gizmo color |
| Draw Placement Grid | Toggle composition grid |
| Layout | Thirds, Fourths, Fifths, Sixths, Sevenths, Eighths, Ninths, Custom |
| Layout Color | Grid line color |
| Custom W / H | Custom grid dimensions |
| Draw Grid Labels | Show pixel measurements |
| Reverse Labels | Flip label orientation |
Dylan Auty