Unityゲーム開発者アイデルンのBlog

よかったら読んでいってね

【Unity】スクリプトからオーディオソースを操作する方法

前回はノーコードでオーディオソースの仕様を解説しましたがそれだと自由度がないので実践ではスクリプトから操作することになります。

 

例えばゲーム開始したときに音楽を鳴らしたいときやゲームをクリアしたいときやアイテムをとったときに鳴らしたいとかいろんな場面が想定されます。

 

今回は具体的にどういう記述をすればいいのか一例をご紹介します。

 

1.オーディオソースを使えるようにする

 

オーディオソースを使うにはもうわかっていると思いますが宣言する必要があります。

 

AudioSource audioSource;

 

ゲットコンポーネントやpublicなどで直接代入することを忘れずにやりましょう。

 

2.クリップを設定する

クリップを指定するときも宣言する必要があります。

 

AudioClip audioclip;

 

こちらも同じく使いたい音の設定を忘れないようにしましょう。

 

3.音楽を代入する

音を代入したいときはこのようなコードを書きます。

 

audioSource.clip=audioclip;

 

4.音楽を鳴らす

代入し終えたら最後に鳴らすコードを記述します。

 

audioSource.Play();

 

Play();を使わなければ代入したものの再生することができないので忘れずにやりましょう。

 

これが一連の流れとなります。

 

5.音を一度だけ鳴らす

次に一度だけ音を鳴らす例を書きます。

 

音を変更し流すコードとほとんど変わりませんので省略します。

 

audioSource.PlayOneShot(audioclip);

 

Play();のところをPlayOneShot();というものにしただけで簡単にならすことができます。

 

 

以上が音を鳴らす工程になります。

 

慣れたらすぐ記述できるようになるので一連の流れを覚えておいてください。

 

一時停止、再開をやる方法

あまり使わないかもしれないですがもし広告を流したいときに音が重複してしまう場合があります。

 

たまにその設定を忘れてカオスみたいなことになるのでこちらも覚えておきましょう。

 

1.音楽を一時停止する

audioSource.Pauce();

 

音楽を一時停止させます。

 

2.音楽を再開する

audioSource.UnPauce();

 

一時停止状態を解除します。

 

3.音楽を停止する

audioSource.Stop();

 

音楽を完全に停止させます。

 

以上がよく使うメソッドのご紹介でした。

 

まとめ

音の管理はゲームを盛り上げるためには絶対に必要なものなので上記のものは忘れずに覚えておきましょう。

 

他にも慣れたらより細かく設定できるようになるのでこだわりだすと時間が溶けていくのでまずは簡単なものから学び始めましょう。

 

参考文献

docs.unity3d.com