Setup Guide
Quick Start (30 Seconds)
All camera components in Simple Camera Toolkit are self-contained. No managers, no setup scripts, no prerequisites.
1. Add a Camera Component
- Select a Camera in your scene (or create one: GameObject > Camera)
- In the Inspector, click Add Component
- Search for the camera type you want (e.g.,
ThirdPersonCamera,VehicleChaseCamera,FlyCam) - The component is ready — no additional setup required
2. Assign the Target
Most follow/orbit cameras need a target transform:
- Drag the GameObject the camera should follow into the Target field
- Adjust position offsets (distance, height, shoulder) as needed
- Hit Play
3. That's It
Each camera works immediately with sensible defaults. Tweak exposed properties in the Inspector while in Play Mode to dial in the feel.
Per-Component Setup
ThirdPersonCamera
| Step | Action |
|---|---|
| 1 | Add ThirdPersonCamera to your Camera |
| 2 | Assign Target (the character or vehicle to follow) |
| 3 | Adjust Distance, Height Offset, Shoulder Offset |
| 4 | Right-click + drag to orbit, scroll to zoom |
Collision avoidance is on by default (spherecast against Everything). Set Collision Mask to exclude specific layers.
VehicleChaseCamera (Forza-Style)
| Step | Action |
|---|---|
| 1 | Add VehicleChaseCamera to your Camera |
| 2 | Assign Target (the vehicle root with optional Rigidbody) |
| 3 | Configure Presets — each ChaseMode gets its own distance/height/FOV/spring tuning |
| 4 | Press C in Play Mode to cycle camera views |
Preset tuning tips:
| Setting | Effect |
|---|---|
| Spring Stiffness | Higher = camera follows bumps more tightly (snappier). Lower = more floaty, weighty feel. |
| Spring Damping | Higher = less oscillation. Critical damping at ~2× sqrt(stiffness). |
| FOV | Per-preset field of view. Cockpit: 80–90, Chase: 60–75, Bumper: 90–100. |
| Drift Angle | Camera orbits around the vehicle to show slides. Controlled by Max Drift Angle. |
| Speed FOV | FOV widens at speed. Tune Speed FOV Multiplier and Speed FOV Max. |
FreeLookCamera
| Step | Action |
|---|---|
| 1 | Add FreeLookCamera to your Camera |
| 2 | Assign Target |
| 3 | Configure Rigs — Top (high/far), Middle (mid), Bottom (low/close) |
| 4 | Move mouse to orbit around the target |
Rig blend weights control vertical sensitivity. Move your mouse up/down to blend between rigs — the blend is weighted by each rig's blendWeight value.
FirstPersonController
| Step | Action |
|---|---|
| 1 | Add FirstPersonController to a GameObject with a Camera child |
| 2 | Assign the Camera's transform to Camera Holder |
| 3 | A CharacterController is auto-added if none exists |
| 4 | In Play Mode, click the Game view and press ESC if cursor is not locked |
Note: This requires a CharacterController on the same GameObject. If one isn't present, it's added automatically.
RTSCamera
| Step | Action |
|---|---|
| 1 | Add RTSCamera to your Camera |
| 2 | Position the camera above the scene |
| 3 | WASD or move mouse to screen edges to pan |
| 4 | Scroll to zoom, Q/E or middle-mouse to rotate |
Edge scrolling is enabled by default with a 10px margin. Adjust Edge Scroll Margin or disable via Edge Scroll Enabled.
DollyTrack
| Step | Action |
|---|---|
| 1 | Add DollyTrack to your Camera |
| 2 | Create empty GameObjects as waypoints and position them in the scene |
| 3 | Assign them to the Waypoints array |
| 4 | Set Speed and hit Play to watch the camera follow the path |
Look modes:
- PathDirection — camera looks ahead along the path
- Target — camera always faces the Look Target transform
DollyTrack
| Step | Action |
|---|---|
| 1 | Add DollyTrack to your Camera |
| 2 | Create empty GameObjects as waypoints and position them in the scene |
| 3 | Assign them to the Waypoints array |
| 4 | Set Speed and hit Play to watch the camera follow the path |
Look modes:
- PathDirection — camera looks ahead along the path
- Target — camera always faces the Look Target transform
CameraShake
| Step | Action |
|---|---|
| 1 | Add CameraShake to your Camera |
| 2 | Configure the Default Profile (amplitude, frequency, duration, decay curve) |
| 3 | Call GetComponent<CameraShake>().Shake() from any script to trigger |
You can also call Shake(amplitude, frequency, duration) for one-off shakes with custom values.
CameraManager
| Step | Action |
|---|---|
| 1 | Add CameraManager to any GameObject in your scene |
| 2 | Assign the Target Camera (defaults to Camera.main) |
| 3 | From code, register states: CameraManager.Instance.RegisterState("Follow", followCamera) |
| 4 | Blend: CameraManager.Instance.BlendTo("Follow") |
The CameraManager is a singleton — only one instance per scene.
Scene Setup
For scenes with multiple cameras:
Camera Stacking
- Add multiple Cameras to the scene with different components
- Disable all but one by unchecking their GameObject
- Use the CameraManager to switch between them with blends
Using with Unity's New Input System
The FirstPersonController uses Unity's legacy input by default. To use the New Input System:
- Install
com.unity.inputsystemvia Package Manager - Create an Input Actions asset with movement and look bindings
- Modify the
FirstPersonControllerto read fromInputActionreferences instead ofInput.GetAxis
Project Browser Layout
Assets/
└── SimpleCameraToolkit/
├── Scripts/ — Camera components
│ ├── Editor/ — Custom inspectors
│ └── Events/ — CameraEvent type
├── Documentation/ — This guide and component reference
│ └── Images/ — Screenshots
└── Samples/ — Example scenes for most camera types
Recommendation: Create a _Scenes folder in your project for your own scenes. Reference the Samples for setup patterns, then swap in your own models and targets.
Dylan Auty