次はサウンド管理クラスと音量調整オプションを作ります。
サウンド管理クラス(SoundManager)の作り方・使い方
SoundManagerの作り方
まず、私が運営している姉妹サイトの方にサウンドマネージャの作り方とスクリプトを載せていますのでそちらを参照してC#スクリプトを作成してください。
【Unity】サウンド管理クラス(SoundManager)を作る | くろくまそふと
SoundManagerの使い方
使い方はそんなに難しくありません。
- SoundManager.csをGameManagerオブジェクトにアタッチします。
- 「Resources」フォルダ内に「Audio」フォルダを作り、その中にさらに「BGM」「SE」フォルダを作ります。
- ゲームで使うBGM素材や効果音素材を1.で作ったフォルダの中に入れます。
- 必要な場所からSoundManager.PlayBGM(orSE)ByName()を呼び出します。
たったこれだけです。試しにコインの効果音をネットから拾ってきて、コインを拾った時にその効果音が鳴るようにしてみてください。
音量調整機能の作り方
サウンド管理クラスができたので、次にボリューム調整機能を作ります。
そういえばユニティちゃんパルクールのときは説明を簡単にするために音量調整を作らなかったのですが、実はそれはゲームとしては結構マイナスになってしまいます。なぜかというと、音量というのはPCの設定や使っているオーディオ機器などによってまちまちなので、音量を変えられないと「音がデカすぎる」とか逆に「小さすぎて聞こえない」といった事態になる可能性があるからです。音量調整機能と言っても簡単なものであればすぐに作れてしまいますので、今回はこの部分をサボらずに作ってみましょう。
C#スクリプト「VolumeController」の作成
まずは音量調整を行うスクリプトを書く必要があります。次のC#スクリプトを作成してください。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class VolumeController : MonoBehaviour { public enum VolumeType { MASTER, BGM, SE } [SerializeField] VolumeType volumeType = 0; Slider slider; SoundManager soundManager; void Start() { slider = GetComponent<Slider>(); soundManager = FindObjectOfType<SoundManager>(); } public void OnValueChanged() { switch (volumeType) { case VolumeType.MASTER: soundManager.Volume = slider.value; break; case VolumeType.BGM: soundManager.BgmVolume = slider.value; break; case VolumeType.SE: soundManager.SeVolume = slider.value; break; } } }
書けたらこれをGameManagerオブジェクトにアタッチしてください。
スライダーの設定
次にボリューム調整で使うスライダーを作成して設定を行います。新しいカンバスを作り、スライダーを作ったら先ほどのVolumeControllerをアタッチして下の図のように各種設定を行ってください。
音量調整画面の作成
あとはスライダーを適当に配置して下の図のような音量調整画面を作ってください。
これでサウンドを鳴らしたり、ボリュームを調整できるようになりました。
次のページ→各種表示・UIの作り方