Search Issue Tracker
By Design
By Design in 6000.5.X
Votes
1
Found in
6000.0.68f1
6000.3.9f1
6000.4.0b9
6000.5.0a7
Issue ID
UUM-134665
Regression
No
No audio is played when Playbable Mixer is changed at runtime
How to reproduce:
1. Open the attached “IN-134474_AudioBug” project
2. Open the “SampleScene”
3. Enter Play mode
4. Notice audio is playing
5. In the Hierarchy, select “AudioBug” GameObject
6. In the Inspector, “Audio Timeline Bug” component, press the “Switch To Right”
7. Listen to audio output
Actual result: No audio is playing
Expected result: Audio track keeps playing, from the opposite speaker
Reproducible with: 6000.0.68f1, 6000.3.9f1, 6000.4.0b9, 6000.5.0a7
Couldn’t test with: 2023.3.0a2 (Audio track does not work on Timeline)
Reproducible on: macOS 26.3 (M1 Pro), Windows 10 (user)
Not reproducible on: No other environments tested
Notes:
- The issue is not still present after swapping back to the left
- Timeline package version does not affect reproduction
Comments (1)
-
Noel_T
Feb 20, 2026 10:38
Thank you for that explanation, my only suggestion is that something like this should be added to the scripting api documentation for AudioPlayableOutput, I couldn't find this information anywhere.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Texture2D hash changes inside of an AssetBundle when rebuilding a SpriteAtlas bundle with an empty AssetPostprocessor Script enabled
- Aniso Level still applies when Generate MipMap is disabled in Texture Import Settings
- Mipmap Limit Groups long names are not truncated when creating a new Mipmap Limit Group with a long name
- “ArgumentException: Invalid double parameter.” error is thrown when Infinity is typed into the Fixed Timestep field
- GameObject becomes gray when using HDRP and STP together on macOS
Resolution Note:
Thank you for reporting a bug to Unity.
After reviewing the behavior, we've confirmed it aligns with the current design and intended use of the feature. We understand this may differ from your expectations or workflow.
We will close this case as 'As Designed.' If you have feedback on how the feature could better meet your needs, please let us know - we value your input and consider it in future improvements.
Audio in a PlayableGraph is processed by the Audio System, which goes through the AudioPlayableOutput and converts Audio playable logic into something that the Audio System can process.
The result is cached.
This cache is invalidated only when something changes on the AudioPlayableOutput itself.
When disconnecting and reconnecting the AudioMixerPlayable the AudioPlayableOutput does not detect any change to its own connection and so doesn't rebuild the Audio.
You end up with:
On one side the disconnected Output which is no longer pinged for evaluation
On the other side the newly connected output which is pinged for evaluation but believes it is not connected to any AudioClip and has nothing to play.
To switch AudioSource and invalidate the cache you can instead change the Target OR change the Output connection directly.
[Button]
public void SwitchToRight()
{
audioOutput.SetTarget(right);
//OR
leftOutput.SetSourcePlayable(Playable.Null);
rightOutput.SetSourcePlayable(audioMixerPlayable);
}
[Button]
public void SwitchToLeft()
{
audioOutput.SetTarget(left);
//OR
rightOutput.SetSourcePlayable(Playable.Null);
leftOutput.SetSourcePlayable(audioMixerPlayable);
}
Resolution Note (6000.5.X):
Thank you for reporting a bug to Unity.
After reviewing the behavior, we've confirmed it aligns with the current design and intended use of the feature. We understand this may differ from your expectations or workflow.
We will close this case as 'As Designed.' If you have feedback on how the feature could better meet your needs, please let us know - we value your input and consider it in future improvements.
Audio in a PlayableGraph is processed by the Audio System, which goes through the AudioPlayableOutput and converts Audio playable logic into something that the Audio System can process.
The result is cached.
This cache is invalidated only when something changes on the AudioPlayableOutput itself.
When disconnecting and reconnecting the AudioMixerPlayable the AudioPlayableOutput does not detect any change to its own connection and so doesn't rebuild the Audio.
You end up with:
On one side the disconnected Output which is no longer pinged for evaluation
On the other side the newly connected output which is pinged for evaluation but believes it is not connected to any AudioClip and has nothing to play.
To switch AudioSource and invalidate the cache you can instead change the Target OR change the Output connection directly.
[Button]
public void SwitchToRight()
{
audioOutput.SetTarget(right);
//OR
leftOutput.SetSourcePlayable(Playable.Null);
rightOutput.SetSourcePlayable(audioMixerPlayable);
}
[Button]
public void SwitchToLeft()
{
audioOutput.SetTarget(left);
//OR
rightOutput.SetSourcePlayable(Playable.Null);
leftOutput.SetSourcePlayable(audioMixerPlayable);
}