スポンサーリンク
Unityエラー解決

Unityで音が鳴らない問題を解決!サウンド設定とスクリプト確認法

Unity
  1. 1. はじめに
  2. 2. よくある原因とチェックリスト
  3. 3. Unity内のサウンド設定を確認する手順
    1. 3-1. 対象オブジェクトとAudioSourceを確認する
    2. 3-2. 初期再生や繰り返し設定を見直す
    3. 3-3. 2D/3Dの聞こえ方(距離減衰)のチェック
    4. 3-4. AudioMixer 使用時のルーティングと音量
    5. 3-5. インポート設定(AudioClip側)を点検
    6. 3-6. ぜったい見落としたくない“エディタ側”のポイント
    7. 3-7. その場でできる再生テスト
  4. 4. スクリプトの確認
    1. 4-1. スクリプトの作成とアタッチ
    2. 4-2. AudioSourceの参照設定
    3. 4-3. よくあるエラーと対処
    4. 4-4. 再生方法の違い
    5. 4-5. Debug.Logで処理の流れを確認
  5. 5. デバッグのヒント
    1. 5-1. Consoleで“赤いログ”を先に潰す
    2. 5-2. “どこで消えているか”を目で追う
    3. 5-3. Gameビューの“全ミュート”を確認
    4. 5-4. 2D/3Dの聞こえ方を仮固定して検証
    5. 5-5. AudioClipの健全性をチェック
    6. 5-6. Project Settingsで無効化していないか
    7. 5-7. “最小の再現ケース”でテスト
    8. 5-8. 最短の検証スクリプトで“呼ばれているか”を確定
    9. 5-9. それでも不安定なときのリフレッシュ手順
  6. 6. それでも解決しないとき
    1. 6-1. 別プロジェクトで検証する
    2. 6-2. Unityのバージョンやプラットフォーム設定を見直す
    3. 6-3. 環境依存の原因を切り分ける
    4. 6-4. コミュニティや公式リソースを活用
    5. 6-5. 開発環境を整える
  7. 7. まとめ
    1. あわせて読みたい
  8. よくある質問(FAQ)
    1. 関連記事:

1. はじめに

Unityでゲームを作っていると、「あれ?音が鳴らない…」という経験をしたことはありませんか?
BGMが流れなかったり、ボタンを押しても効果音が鳴らなかったりすると、せっかくの演出が台無しになってしまいますよね。実はこのトラブル、ほとんどの場合は設定の見落としやちょっとしたスクリプトのミスが原因なんです。

本記事では、「Unityで音が鳴らない問題」を初心者でも順番に確認できるようにまとめました。チェックリストに沿って見直していけば、ほとんどのケースは解決できるはずです。さらに、UnityのAudioSourceやAudioMixerの使い方、スクリプトの確認方法もやさしく解説していきます。

もし基礎からしっかり学びたい方は、以下のような教材もおすすめです。Unityの仕組みを理解しておくと、トラブルに出会っても落ち着いて対応できるようになりますよ。


2. よくある原因とチェックリスト

Unityで音が鳴らないときは、実はちょっとした設定の見落としであることがほとんどです。焦らずに、次のチェックリストを一つずつ確認してみましょう。意外と「え、これだけ?」というシンプルな理由で解決することも多いんです。

  1. AudioSourceの設定確認
    音を鳴らしたいオブジェクトに AudioSource コンポーネントが付いているか確認しましょう。付いていなければ音は出ません。さらに、Audio Clip フィールドにサウンドファイルが正しく設定されているかも要チェックです。
  2. 音量(Volume)の確認
    Volume が 0 になっていないか、Inspector ウィンドウで確認します。AudioMixerを使っている場合は、対象グループの音量が下がっていないかも確認しましょう。
  3. ミュート設定の確認
    AudioSourceに「Mute」にチェックが入っていないか確認します。また、Unityエディターの Gameビュー右上のスピーカーマーク(Mute Audio) が有効になっていないかも見てみましょう。
  4. サウンドファイルの形式
    サウンドファイルは Unity が対応している WAV / MP3 / OGG / AIFF などである必要があります。ファイルが壊れていないか、他のプレイヤーでも再生できるか確認してみましょう。
  5. AudioListenerの確認
    シーンに AudioListener が存在しないと音は聞こえません。通常はメインカメラに付いていますが、複数あると警告が出るので、1つだけ残すようにしてください。
  6. 外部環境のチェック
    パソコンやスマホの音量がゼロになっていないか、スピーカーやヘッドホンが正しく接続されているかも忘れずに確認を。意外とこれが原因だったりします。

音の仕組みをもっと理解しておくと、こうしたトラブルの原因が見つけやすくなります。ゲーム開発だけでなく音の基礎も学びたい方には、こんな一冊もおすすめです。


3. Unity内のサウンド設定を確認する手順

ここからは、最短で直すための具体的な手順を順番に見ていきます。作業は上から順に進めてください。どこか一つでも間違っていると音は鳴りません。落ち着いて、一歩ずついきましょう。

3-1. 対象オブジェクトとAudioSourceを確認する

  1. ヒエラルキーで音を鳴らしたいオブジェクトを選択します。
  2. InspectorにAudioSourceコンポーネントが付いているか確認します。無ければ、Add ComponentAudioSource で追加します。
  3. Audio Clip フィールドに、プロジェクトウィンドウからサウンドファイルをドラッグ&ドロップで設定します。
  4. Volume が 0 になっていないか、Mute にチェックが入っていないかを確認します。
  5. テスト再生は、AudioSourceの小さな再生ボタン(▶)でも確認できます。

3-2. 初期再生や繰り返し設定を見直す

  • Play On Awake … シーン開始と同時に鳴らす場合はON、スクリプトで鳴らすならOFF。
  • Loop … BGMなど繰り返す場合はON、効果音は基本OFF。
  • Priority … 同時発音が多いとき、重要な音は数値を小さく(優先度を上げる)。

3-3. 2D/3Dの聞こえ方(距離減衰)のチェック

  1. Spatial Blend を確認:
    0(2D)だと距離の影響を受けません。1(3D)側に寄せると、距離方向で音量が変わります。
  2. 3D Sound SettingsMin/Max Distance を確認:
    リスナー(通常はメインカメラ)から離れすぎると無音に感じます。Maxを広げるか、オブジェクトを近づけてテストしましょう。
  3. Rolloff カーブ(減衰の仕方)を一時的に緩やかにして、聞こえ方を確認します。

3-4. AudioMixer 使用時のルーティングと音量

  1. プロジェクトウィンドウで AudioMixer をダブルクリックして開きます。
  2. 目的のグループ(例:BGM、SFX)がMuteSolo になっていないか、Volume が極端に低くないか(-80dB付近は実質無音)を確認します。
  3. AudioSource の Output を、該当のミキサーグループに割り当てます(未設定だと期待どおりに音量管理されません)。
  4. 必要に応じて Exposed Parameter を設定し、スクリプトやUIで音量を操作しやすくしておくと後々便利です。

3-5. インポート設定(AudioClip側)を点検

  1. プロジェクトウィンドウでサウンドファイルを選択し、InspectorのImporterを確認します。
  2. Compression Format(PCM/ADPCM/Vorbisなど)を状況に合わせて選択。短いSEは無圧縮(低遅延)も検討、BGMは圧縮で容量節約。
  3. Load In Background をONにすると、ロード時のカクつきが軽減されることがあります。
  4. 形式は WAV / MP3 / OGG / AIFF などに対応。再生できない場合は、他のプレイヤーで再生できるかもチェック。

3-6. ぜったい見落としたくない“エディタ側”のポイント

  • Gameビュー右上のスピーカーマーク(Mute Audio) がONだと、再生中は全ミュートになります。OFFにしましょう。
  • AudioListener がシーンに1つだけあるか確認(通常はメインカメラ)。二重付与は警告の原因、無いと音が届きません。

3-7. その場でできる再生テスト

  1. シーンを再生(▶)して、問題のオブジェクトを選択します。
  2. 再生中に Inspector の AudioSource を見て、レベルメーターが動くか、Play 状態になっているかを確認します。
  3. ミキサービューでもメーターが振れているか確認し、どこで消えているか(Source → Group → Master)を辿って原因を特定します。

ここまでで「設定の抜け・距離のせいで聞こえない・ミキサーのルーティング漏れ」といった典型パターンはほぼ潰せます。次の章では、スクリプト側の確認と直し方を具体例つきで見ていきます。




4. スクリプトの確認

設定を見直しても音が鳴らない場合は、スクリプト側の原因をチェックしてみましょう。特に初心者がよくつまずくのは「AudioSourceが正しく参照されていない」ケースです。以下の手順で順番に確認してみてください。

4-1. スクリプトの作成とアタッチ

  1. プロジェクトウィンドウを右クリックし、Create → C# Script を選んで新しいスクリプトを作成します。
  2. スクリプトにわかりやすい名前(例:PlaySound)を付けます。
  3. 作成したスクリプトをヒエラルキー内の対象GameObjectにドラッグ&ドロップしてアタッチします。

4-2. AudioSourceの参照設定

  1. スクリプト内で AudioSource を宣言し、Inspectorでリンクできるようにします。
  2. 対象GameObjectのInspectorを開き、スクリプトのフィールドにAudioSourceコンポーネントをドラッグ&ドロップして割り当てます。

using UnityEngine;

public class PlaySound : MonoBehaviour
{
    public AudioSource audioSource; // Inspectorから割り当てる

    public void PlayClip()
    {
        if (audioSource != null)
        {
            audioSource.Play();
            Debug.Log("音を再生しました!");
        }
        else
        {
            Debug.LogWarning("AudioSourceが設定されていません!");
        }
    }
}

4-3. よくあるエラーと対処

  • NullReferenceException が出る → InspectorでAudioSourceをドラッグ&ドロップしてリンクしているか確認。
  • 音が鳴らないがエラーは出ていない → audioSource.volume が0ではないか、Muteが有効になっていないか確認。
  • 音が鳴りっぱなしになる → AudioSourceの Loop がチェックされていないか確認。

4-4. 再生方法の違い

  • audioSource.Play() … 1つのクリップを再生。途中で呼ぶと先頭から再スタート。
  • audioSource.PlayOneShot(clip) … 効果音向き。重ねて鳴らせる。
  • audioSource.PlayDelayed(秒数) … 指定した時間後に再生。

4-5. Debug.Logで処理の流れを確認

「そもそも関数が呼ばれているのか?」を確かめるには Debug.Log() を活用しましょう。メッセージがConsoleに出れば処理が実行されている証拠です。出なければイベントの接続や呼び出し側を見直しましょう。

スクリプトの設定をクリアすれば、ほとんどの「コード側の原因」は解消できます。次はさらに踏み込んで、デバッグのヒントを紹介します。




5. デバッグのヒント

「設定もスクリプトも合ってそう……なのにまだ鳴らない!」そんな時に役立つ、原因の切り分けテクニックをまとめました。上から順に試すと、どこで音が消えているかが見えてきます。

5-1. Consoleで“赤いログ”を先に潰す

  1. Consoleウィンドウを開き、Error(赤)とWarning(黄)をチェック。
  2. NullReferenceExceptionMissingReferenceException があれば、AudioSourceやAudioClipの参照切れを疑う。
  3. There are 2 audio listeners in the scene などの警告があれば、AudioListenerは1つだけにする。

5-2. “どこで消えているか”を目で追う

  1. シーンを再生し、問題のAudioSourceを選択。Inspectorのレベルメーターが動けばソースまでは鳴っている。
  2. AudioMixerを開き、該当グループのメーター→Masterまで順に確認。どこかで止まれば、その手前が原因。
  3. 一時的にグループのEffectをBypassMute/Soloを切り替えて経路を切り分ける。

5-3. Gameビューの“全ミュート”を確認

  • 再生中、Gameビュー右上のスピーカーマーク(Mute Audio)がONだと完全に無音になります。必ずOFFへ。

5-4. 2D/3Dの聞こえ方を仮固定して検証

  1. Spatial Blendを一旦2D(0)へ。距離減衰の影響を排除して純粋に再生可否をテスト。
  2. 3Dで使う場合は、Min/Max Distanceを広げ、Rolloffを緩やかにして聞こえる範囲を確保。
  3. リスナー(通常はメインカメラ)から位置が離れすぎていないかをシーン上で確認。

5-5. AudioClipの健全性をチェック

  1. 対象の音源ファイルを外部プレイヤーで再生してみる(ファイル破損の切り分け)。
  2. Unity内では対象のAudioClipを選択し、ImporterのCompression FormatLoad In BackgroundPreload Audio Dataを見直す。
  3. 別の既知の正常なSE(効果音)を割り当てて鳴るかを比較。ファイル固有の問題か経路の問題かを分離。

5-6. Project Settingsで無効化していないか

  • Edit > Project Settings > Audio を開き、サンプルレートやDSPバッファが極端でないかを確認。
  • プラットフォームごとのオーバーライド設定(iOS/Android)を使っている場合は、圧縮やサンプルレートが原因で極端に小さくなっていないかチェック。

5-7. “最小の再現ケース”でテスト

  1. 新規シーンを作成し、ヒエラルキーで右クリック → 3D Object → Cube を作成。
  2. CubeにAudioSourceを追加し、短いSEをAudio Clipへドラッグ&ドロップ。
  3. Play On Awake=ONSpatial Blend=2DVolume=1で再生。ここで鳴れば、元プロジェクト側の設定が原因。

5-8. 最短の検証スクリプトで“呼ばれているか”を確定


using UnityEngine;
public class AudioPing : MonoBehaviour
{
    public AudioSource src;
    void Start()
    {
        if (src == null) src = GetComponent<AudioSource>();
        Debug.Log(src ? "AudioSource OK" : "AudioSource MISSING");
        if (src && src.clip != null)
        {
            src.Play();
            Debug.Log("Play() called");
        }
        else
        {
            Debug.LogWarning("Clip未設定か、AudioSource未割り当て");
        }
    }
}

このスクリプトを作成(Create → C# ScriptAudioPing)し、対象オブジェクトへドラッグ&ドロップでアタッチして検証します。

5-9. それでも不安定なときのリフレッシュ手順

  • 音源ファイルをReimport
  • エディターを再起動し、Libraryの再生成を促す。
  • 同名設定の競合を避けるため、別名のAudioMixerグループに一時的に差し替えてテスト。

ここまでの手順で、「どこで音が消えているか」がかなり明確になるはずです。




6. それでも解決しないとき

ここまでの設定やデバッグを試しても音が鳴らない場合は、Unity側ではなく環境やプロジェクトの構造に原因が潜んでいる可能性があります。以下のステップでさらに切り分けてみましょう。

6-1. 別プロジェクトで検証する

  1. 新規プロジェクトを作成し、Cubeなどシンプルなオブジェクトを配置。
  2. AudioSourceを追加し、短い効果音ファイルを設定。
  3. 再生して音が鳴れば、問題は元のプロジェクト固有の設定にあると考えられます。

6-2. Unityのバージョンやプラットフォーム設定を見直す

  • Unityエディターのバージョンによって、Audio関連の不具合が発生している場合があります。可能であれば別バージョンで開いて確認しましょう。
  • Build Settings で対象プラットフォームを変更し、各プラットフォーム固有の設定(iOSやAndroidのオーディオ圧縮設定など)を確認してください。

6-3. 環境依存の原因を切り分ける

  1. PCやスマホの音量ミキサーでUnityの出力がミュートになっていないか確認。
  2. USBオーディオインターフェースや外部スピーカーを使用している場合は、別の出力先で鳴るかテスト。
  3. Bluetoothイヤホンは接続遅延や不安定さで音が出ない場合もあるため、有線ヘッドホンでも試してみましょう。

正しいサウンド出力が確認できない場合は、使っているスピーカーやイヤホンに原因があるかもしれません。
おすすめモデルや使い方は PCスピーカーのおすすめ5選と使い方ガイド をチェックしてみてください。

6-4. コミュニティや公式リソースを活用

6-5. 開発環境を整える

もし再発を防ぎたいなら、正確なモニター環境を用意するのも有効です。特にBGMや効果音を扱うなら、音を忠実に再現できる機材があると安心ですよ。

もしUnityの設定に問題がなくても音が出ない場合は、PCそのもののサウンド設定を見直す必要があります。
詳しくは PCの音が出ない時の直し方(Windows 11対応) も参考にしてください。

ここまで確認すれば、Unityで音が鳴らないトラブルの大半は解決できるはずです。


7. まとめ

Unityで音が鳴らないときは、慌てずに基本のチェックリストから確認するのが一番の近道です。
「AudioSourceは付いている?」「Audio Clipは設定されてる?」「VolumeやMuteの状態は?」――これらを順番に見直すだけで、ほとんどの問題は解決できます。

さらに、スクリプトの参照切れ距離減衰の設定ミスAudioMixerのルーティング漏れといった中級者向けのポイントも押さえておくと安心です。どうしても直らない場合は、新規プロジェクトでシンプルに再現テストを行うのも効果的ですよ。

音周りのトラブルは、ゲームの完成度に直結する重要な部分。しっかり理解しておくことで、開発スピードもグッと上がります。
もっと体系的に学びたい方は、以下の教材や参考書をチェックしてみてくださいね。

音の仕組みを理解しておけば、UnityだけでなくDTMや映像制作など他の分野にも応用が利きます。ぜひ今回の記事を参考に、音の演出に自信を持てるようになってくださいね。


あわせて読みたい

Unityでの開発をスムーズに進めたい方へ、音以外にも役立つ解説記事をまとめました。ぜひこちらも参考にしてみてくださいね。


よくある質問(FAQ)

Q
Play()PlayOneShot() の違いは?
A

Play() はAudioSourceに設定されたクリップを再生し、途中で呼ぶと最初からリスタートします。
一方 PlayOneShot(clip) は同じAudioSourceでも音を重ねて再生できるので、効果音などに便利です。

Q
3Dサウンドが小さすぎて聞こえません
A

AudioSourceのSpatial Blendを確認し、3D寄りに設定している場合はMin/Max DistanceRolloffを調整してください。距離の設定が狭いと、少し離れるだけで無音になります。

Q
モバイルビルド(iOS/Android)で音が鳴りません
A

プラットフォーム固有の設定が原因の場合があります。
特にiOSでは、無音再生を防ぐためにAudio Session設定Muteスイッチの挙動が影響することがあります。
Androidでは、オーディオ圧縮の設定を変更すると改善するケースもあります。

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク