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