Unityで音を鳴らす方法です。PlayはBGM向けで、同時に複数の音源の再生ができず、次の曲が始まると前の曲から差し替えられます。
成果物
オブジェクトに登録したAudioSourceを、クリックした時に再生してみます。
BGMを鳴らす(AudioSource.Play)
効果音(SE)を鳴らす
GetComponent<AudioSource>().Play();
GetComponent<AudioSource>().Play();
ラジオをクリックすると音楽が鳴る、というものを作ろうと思います。
アセットの音源をオブジェクトにドラッグすると、
自動的にAudioSourceコンポーネントが作成されます。
最初から音が鳴らないように、ゲーム開始時に再生はオフにしておきます。
スクリプトを作成し、
OnMouseDownメソッド内にGetComponent<AudioSource>().Play();を実行させます。
これだけで、クリックすると音楽が再生されるという機能は実装できます。
これだけで、クリックすると音楽が再生されるという機能は実装できます。
AudioSource.Playで再生した音源は、同時にひとつしか再生できません(BGM向け)。
SE・効果音を鳴らす(AudioSource.PlayOneShot)
効果音(SE)を鳴らす
GetComponent<AudioSource>().PlayOneShot(音源);
GetComponent<AudioSource>().PlayOneShot(音源);
今度は「カギを開けた時の音」を再生してみます(音源は効果音ラボ様より)。
AudioSourceコンポーネントは作る必要がありますが、使用する音源をセットする必要はありません。
AudioSource.Playと同じような感じで、GetComponent<AudioSource>().PlayOneShot();のように記述しますが、
PlayOneShotはこれだけだとエラーとなり、音源の指定が必須となります。音源をAudioSourceにセットしてても必要です。
クラスの頭でpublic AudioClip 変数名;のようにして音源を代入する変数を作り、
PlayOneShotの後の()の中に変数名を書いて、
インスペクターを確認します。無事に作った変数名が表示されていたら、
音源を指定します。
この状態で実行すると、カギを開けた時にSEが鳴ることが確認できます。
AudioSource.PlayOneShotで再生した音源は、同時に複数再生でき、BGMとも同時に鳴らせます。
完成品はこちら。
関連記事
AudioSourceの音量を変更する方法です。
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。
コメント