

Sometimes a static camera just isn’t enough.
You want the camera to glide through a hallway. Circle around a character during dialogue. Follow a racing car smoothly along a track. That’s where a dolly track comes in.
A dolly track lets your camera move along a predefined path. Instead of manually animating every position, you define a curve and let the camera travel along it. When you customize that system properly, you get cinematic movement that feels intentional and polished.
In this guide, we’ll walk through what dolly tracks are, how to use them in Unity, how to customize them, and how to build your own system if needed.
A dolly track is a path that a camera follows over time. Think of it like rails for your camera. In film production, real cameras move along physical tracks. In Unity, we simulate that behavior with splines or waypoint systems.
Dolly tracks are commonly used for:
The goal is smooth, controlled movement that feels deliberate.
The easiest way to create dolly tracks in Unity is with Cinemachine. Once installed from the Package Manager, it gives you professional-level camera tools.
To create a dolly camera:
Now your camera can move along the defined path.
This is where things get interesting. A default path works, but customization makes it cinematic.
Each waypoint controls position and rotation. You can:
Smoother curves create natural movement. Sharp angles create tension.
You can animate the camera’s position along the path using the Path Position value.
Instead of constant speed, try easing in and out. Slow at the start, faster in the middle, slow at the end. That feels more cinematic.
Example script to move along a path:
using UnityEngine;
using Cinemachine;
public class DollyMover : MonoBehaviour
{
public CinemachineVirtualCamera virtualCamera;
public float speed = 2f;
private CinemachineTrackedDolly dolly;
void Start()
{
dolly = virtualCamera.GetCinemachineComponent<CinemachineTrackedDolly>();
}
void Update()
{
dolly.m_PathPosition += speed * Time.deltaTime;
}
}
This moves the camera along the path over time.
Linear movement feels robotic. You can improve it with easing curves.
Example using Mathf.SmoothStep:
float t = Mathf.Clamp01(elapsedTime / duration); float easedT = Mathf.SmoothStep(0f, 1f, t); dolly.m_PathPosition = easedT * maxPathPosition;
This makes the camera accelerate smoothly and slow down at the end.
Movement is only half the story. Where the camera looks matters just as much.
With Cinemachine, you can assign a Look At target. The camera will automatically rotate toward it while traveling along the path.
Creative ideas:
You can even change targets dynamically through code.
Tracked Dolly includes offset settings. These allow you to shift the camera slightly left, right, up, or down relative to the path.
This is useful when:
Small offsets make scenes feel professionally framed.
Some dolly tracks should loop, like in racing games. Others should run once, like cutscenes.
You can control this behavior by:
Choose the behavior that fits your gameplay needs.
If you want full control or a lightweight system, you can build your own using waypoints.
Basic idea:
Simple example:
using UnityEngine;
public class SimpleDolly : MonoBehaviour
{
public Transform[] waypoints;
public float speed = 5f;
private int currentIndex = 0;
void Update()
{
if (currentIndex >= waypoints.Length) return;
Transform target = waypoints[currentIndex];
transform.position = Vector3.MoveTowards(
transform.position,
target.position,
speed * Time.deltaTime
);
if (Vector3.Distance(transform.position, target.position) < 0.1f)
{
currentIndex++;
}
}
}
This is simple but effective for basic camera rails.
A powerful dolly system reacts to gameplay.
For example:
Combining dolly movement with camera shake, depth of field, or field-of-view changes creates strong cinematic impact.
Dolly systems are lightweight, but remember:
Most performance cost comes from post-processing effects, not the dolly path itself.
Here are a few practical tips:
Watch how movies handle camera movement. Slow build-ups. Controlled pacing. Focused framing. That same logic applies in Unity.
Dolly track customization is about control and intention.
You’re not just moving a camera from point A to point B. You’re guiding the player’s attention. You’re building tension. You’re shaping emotion.
Start with a simple path. Add easing. Adjust framing. Layer in dynamic effects. With a little polish, even a basic camera rail can feel cinematic.
And once you get comfortable with it, you’ll start seeing opportunities to use dolly movement everywhere.