Quick answer: Pass a transition time to snapshot.TransitionTo(seconds). Zero (or omitted) is an instant snap. Use 0.5–2s for audible fades.

Entering a cave should muffle outside audio over a second. The snapshot switches but the muffle is instant — jarring. TransitionTo was called with time 0.

Specify Transition Time

[SerializeField] AudioMixerSnapshot caveSnapshot;

void OnEnterCave()
{
    caveSnapshot.TransitionTo(1.5f);   // 1.5s fade
}

The float is the fade duration. The mixer interpolates all snapshot parameters over that time.

Weighted Blend Between Snapshots

mixer.TransitionToSnapshots(
    new[] { outdoorSnapshot, caveSnapshot },
    new[] { 0.3f, 0.7f },   // weights
    1.0f);

Blend multiple snapshots by weight — useful for partial environmental transitions (cave entrance).

Curve Shape

TransitionTo interpolates linearly in dB. For perceptual smoothness, the dB-linear interpolation is usually fine; if it feels off, drive exposed parameters via a coroutine with a custom curve instead.

Verifying

Walk into the cave. Audio muffles over 1.5s smoothly. Walk out: reverses. No instant snap.

“TransitionTo takes a time. Omit it and you get an instant snap — always pass a duration.”

Trigger snapshot transitions from trigger volumes with the player’s entry/exit — pair with a small overlap zone so transitions start before the player is fully inside.