When you press Play and your game looks fine but everything is silent, it is frustrating and hard to debug. Unity’s audio pipeline is simple in concept—AudioSource → AudioListener → mixer/output—but there are many small switches that can mute your sound.

This article walks through a practical checklist to fix Unity audio that is not playing at all, only plays in the editor, or breaks after a build. Work through the steps in order and test after each one.

1. Check basic scene wiring (AudioListener and AudioSource)

Start with the absolute basics in your current Scene.

  1. In the Hierarchy, search for AudioListener.
    • Make sure there is exactly one enabled AudioListener, usually on the main camera.
    • If you see multiple enabled listeners, Unity will log a warning and may mute one of them.
  2. Select the object that should be playing sound:
    • Confirm it has an AudioSource component.
    • Check that Mute is unchecked and Volume is above 0.
    • Verify that an AudioClip is assigned.
  3. With the AudioSource selected, click the Play button in the Inspector:
    • If you hear sound in the editor (without Play mode), the clip and output device are working.
    • If you hear nothing, the problem is likely with the clip or your OS audio/device.

If the clip plays from the Inspector but not in Play mode, the problem is likely timing, scripting, or mixer configuration.

2. Verify import settings and audio format

Sometimes Unity will not play a clip because of import or compression issues.

  1. Select the audio asset in the Project window.
  2. In the Inspector, check:
    • Load Type (Decompress On Load / Compressed In Memory / Streaming).
    • Compression Format (Vorbis, ADPCM, PCM).
    • Sample Rate Setting (Preserve, Optimized, Override).
  3. For debugging, try:
    • Set Load Type to Decompress On Load.
    • Set Compression Format to PCM for lossless playback.
    • Click Apply, then test again.

If the sound works with PCM but fails with heavy compression or streaming, you likely have a problem with:

  • Very large files streaming from slow storage.
  • Very aggressive compression settings.
  • Platform-specific audio codec support (especially on WebGL or mobile).

3. Confirm that your script is actually triggering playback

If you are starting audio from code, verify the call path rather than assuming it runs.

Common patterns:

using UnityEngine;

public class PlayOnStart : MonoBehaviour
{
    [SerializeField] private AudioSource audioSource;

    private void Awake()
    {
        if (audioSource == null)
            audioSource = GetComponent<AudioSource>();
    }

    private void Start()
    {
        Debug.Log("PlayOnStart: attempting to play audio");
        audioSource?.Play();
    }
}

Checklist:

  • Add a Debug.Log before calling Play() and confirm the message appears in the Console.
  • Ensure the object with the script and AudioSource is active and not being destroyed or disabled before it can play.
  • For 3D sounds, confirm the object is not far away from the listener or outside its max distance.

If the log never appears, the script is not running; fix script execution order, component references, or object activation.

4. Check the Audio Mixer and volume settings

If you are using an Audio Mixer, a single muted group or low fader can silence everything.

  1. Open Window → Audio → Audio Mixer.
  2. Look for:
    • Any group with Mute enabled.
    • Faders pulled down very low (for example below -40 dB).
    • The Master group volume.
  3. In your AudioSource, verify:
    • Output is routed to the correct mixer group (or None if you are not using a mixer).
  4. Temporarily:
    • Bypass effects on the group.
    • Turn the group’s volume up to 0 dB.

Also check the global volume:

  • In the Game view, click the Audio button and make sure it is not muted.
  • On your OS, verify the system volume and Unity’s application volume are not turned down.

5. Inspect 3D sound settings (spatial audio issues)

If 2D UI sounds work but 3D world sounds do not, the issue may be with spatialization and distance.

On the AudioSource:

  • Check Spatial Blend:
    • For UI/menus, it should generally be 2D (0).
    • For in-world sounds, a value closer to 3D (1) is correct, but the listener needs to be near.
  • Look at Min Distance and Max Distance:
    • If Min Distance is huge or Max Distance is tiny, sounds may be effectively inaudible.

Debug tip:

  • Temporarily set Spatial Blend to 2D and Min/Max Distance to defaults.
  • Place the AudioSource at the origin (0,0,0) with the listener nearby.

If you hear the sound in 2D but not 3D, adjust your spatialization curves and distances.

6. Editor vs build differences

Sometimes audio works in the editor but not in a build (PC, mobile, WebGL).

Checklist:

  • Ensure the audio assets are included in your build scenes and not only in editor-only test scenes.
  • Avoid using absolute file paths or Resources.Load on assets that are not in Resources folders.
  • For WebGL:
    • Use formats and compression known to work well in browsers (for example OGG, moderate compression).
    • Test in multiple browsers to rule out a specific engine bug.
  • For mobile:
    • Confirm device is not in silent mode.
    • Avoid very large uncompressed music files; use streaming where appropriate.

If a particular platform is failing, check that platform’s Player Settings for audio-related options.

7. Check Time Scale, pause state, and script logic

In some projects, audio playback is tied to game state.

Verify:

  • Time.timeScale is not set to 0 in a way that pauses audio updates you rely on.
  • You are not stopping audio in code immediately after starting it (for example in a state machine transition).
  • Game-wide “mute” flags (for example a settings manager) are not being applied accidentally on start.

Add logs around any global mute/volume operations and verify they match the expected state.

8. Quick prevention tips

To avoid future “no audio” surprises:

  • Create a small audio test scene with:
    • One 2D UI click sound.
    • One 3D looping ambience.
    • A simple test music track.
  • Keep that scene in your project and test it on every new target platform.
  • Use a consistent AudioSource + Mixer setup across scenes so you do not duplicate mistakes.
  • Document:
    • Which mixer groups exist and what they are for.
    • Any global mute or volume controls exposed in the settings menu.

This makes it much easier to see when something is wrong compared to “it used to work, now the whole game is quiet”.

Summary and next steps

If Unity audio is not playing:

  • Confirm AudioListener and AudioSource components are wired correctly.
  • Verify audio import settings and test with simple PCM/decompressed clips.
  • Check that your scripts actually call Play() and log when they do.
  • Inspect Audio Mixer routing, mute states, and volume levels.
  • Test 2D vs 3D sound behavior and distance settings.
  • Compare editor and build behavior on the target platform.

Once your core audio is working again, consider reading deeper audio guides or courses on how to structure your soundscape, use mixers effectively, and integrate with middleware like FMOD or Wwise for more advanced projects.