Unity│AudioSource.PlayOneShotで効果音を鳴らす方法

了解しました。Unity初心者向けにリライトしますね。

コードは現在のUnityで動く書き方に更新し、文体は親しみやすい丁寧語でいきます。

目次

【Unity】AudioSource.PlayOneShotで効果音を鳴らす方法【初心者向け】

Unityでゲームに効果音やBGMを入れる方法を解説します。実際にコードを書いて音を鳴らすところまでやってみましょう。

Unityで使える音声ファイル形式

まず、どんな音声ファイルが使えるか知っておきましょう。

形式特徴向いている用途
WAV / AIFF無圧縮で高音質。ファイルサイズは大きい。再生時にCPU負荷が低い効果音(SE)
MP3 / OGG圧縮されていてファイルサイズが小さい。若干の音質劣化ありBGM

迷ったら、短い効果音はWAV、長いBGMはMP3かOGGを選べばOKです。

音を鳴らす仕組みを理解しよう

Unityで音を扱うには、3つのコンポーネントの役割を覚えておきましょう。

コンポーネント役割
AudioClip音声データそのもの
AudioSource音を再生するスピーカー
AudioListener音を聞く耳。カメラに最初からついている(シーンに1つだけ)

方法1:とりあえず音を鳴らしてみる(コードなし)

一番シンプルな方法です。コードを書かずに音を再生できます。

  1. Hierarchyで右クリック →「Create Empty」で空のGameObjectを作成
  2. 作成したGameObjectを選択し、Inspectorで「Add Component」→「Audio Source」を追加
  3. Audio Sourceの「AudioClip」欄に、鳴らしたい音声ファイルをドラッグ&ドロップ
  4. 「Play On Awake」にチェックが入っていることを確認
  5. 再生ボタンを押す

これでゲーム開始と同時に音が鳴ります。

方法2:クリックで効果音を鳴らす(コードあり)

マウスの左クリックと右クリックで、別々の効果音を鳴らしてみましょう。

手順

  1. Hierarchyで空のGameObjectを作成し、Audio Sourceを追加
  2. 以下のスクリプトを作成してGameObjectにアタッチ
  3. Inspectorでスクリプトの「Sound 01」「Sound 02」に音声ファイルを設定
  4. 再生して、左クリック・右クリックで音が鳴ることを確認

スクリプト

csharp

using UnityEngine;

public class PlaySound : MonoBehaviour
{
    public AudioClip sound01;
    public AudioClip sound02;

    private AudioSource audioSource;

    void Start()
    {
        // AudioSourceコンポーネントを取得
        audioSource = GetComponent<AudioSource>();
    }

    void Update()
    {
        // 左クリックで sound01 を再生
        if (Input.GetMouseButtonUp(0))
        {
            audioSource.PlayOneShot(sound01);
        }

        // 右クリックで sound02 を再生
        if (Input.GetMouseButtonUp(1))
        {
            audioSource.PlayOneShot(sound02);
        }
    }
}

PlayOneShotとは?

AudioSource.PlayOneShot()は、効果音の再生に適したメソッドです。

特徴

  • 音を1回だけ再生する
  • 同じAudioSourceで音を重ねて再生できる(連打しても大丈夫)
  • 音量を第2引数で調整可能

csharp

// 音量70%で再生する例
audioSource.PlayOneShot(sound01, 0.7f);

注意点として、同時に大量の音を鳴らすと処理が重くなります。連射する効果音などは、同時発生数に気をつけましょう。

よくあるエラーと対処法

症状原因と対処
音が鳴らないAudioListenerがシーンにあるか確認。カメラを削除していると消えている場合がある
エラー「AudioSource is missing」GameObjectにAudioSourceが追加されていない
音が小さい/聞こえないAudioSourceやAudioListenerの音量設定を確認

まとめ

  • 効果音にはWAV、BGMにはMP3/OGGが適している
  • 音を鳴らすにはAudioSourceコンポーネントが必要
  • PlayOneShot()を使えば、効果音を重ねて再生できる

まずは簡単な効果音から試して、ゲームに音を入れる感覚をつかんでみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次