Unityでスクリプトから音楽(BGM)、効果音(SE)を再生する、音を鳴らす方法/AudioSource.Play、PlayOneShotの使い方

boy IT

Unityで音を鳴らす方法です。PlayはBGM向けで、同時に複数の音源の再生ができず、次の曲が始まると前の曲から差し替えられます。

スポンサーリンク

成果物

audio6
オブジェクトに登録したAudioSourceを、クリックした時に再生してみます。

BGMを鳴らす(AudioSource.Play)

効果音(SE)を鳴らす
GetComponent<AudioSource>().Play();
audio1
ラジオをクリックすると音楽が鳴る、というものを作ろうと思います。
audio2
アセットの音源をオブジェクトにドラッグすると、
audio3
自動的にAudioSourceコンポーネントが作成されます。
audio4
最初から音が鳴らないように、ゲーム開始時に再生はオフにしておきます。
audio5
スクリプトを作成し、
audio6
OnMouseDownメソッド内にGetComponent<AudioSource>().Play();を実行させます。
これだけで、クリックすると音楽が再生されるという機能は実装できます。

AudioSource.Playで再生した音源は、同時にひとつしか再生できません(BGM向け)。

SE・効果音を鳴らす(AudioSource.PlayOneShot)

効果音(SE)を鳴らす
GetComponent<AudioSource>().PlayOneShot(音源);
se1
今度は「カギを開けた時の音」を再生してみます(音源は効果音ラボ様より)。
se2
AudioSourceコンポーネントは作る必要がありますが、使用する音源をセットする必要はありません。
se3
AudioSource.Playと同じような感じで、GetComponent<AudioSource>().PlayOneShot();のように記述しますが、
se4
PlayOneShotはこれだけだとエラーとなり、音源の指定が必須となります。音源をAudioSourceにセットしてても必要です。
se5
クラスの頭でpublic AudioClip 変数名;のようにして音源を代入する変数を作り、
se6
PlayOneShotの後の()の中に変数名を書いて、
se7
インスペクターを確認します。無事に作った変数名が表示されていたら、
se8
音源を指定します。
se1
この状態で実行すると、カギを開けた時にSEが鳴ることが確認できます。

AudioSource.PlayOneShotで再生した音源は、同時に複数再生でき、BGMとも同時に鳴らせます
完成品はこちら

関連記事

やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。

コメント