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.