✅前回の記事はこちら👇
🎮 Unity6 を使った「1つのシーンで完結する2D脱出ゲーム講座」第12回です。
今回は BGM の追加方法 と オプション画面から BGM・SE の音量を調節できる仕組み を作っていきます
🎥制作例動画
🎵 BGMをUnityに追加する
まずはゲーム内で再生できるように BGM をプロジェクトに追加します。

ぼくは「BGMer」を使ってるよ!
(商用利用OK・無料)
今回の教材で使用するBGMは以下の2つ:
- クリア後に流れる クリアBGM
- ゲーム開始〜クリア前まで流す メインBGM
BGMManagerの作成
まずは BGM を管理するスクリプトを作ります。
オブジェクトの作成(Hierarchy)
- 空の GameObject を作成し BGMManager と命名
- AudioSource コンポーネントを追加
-「Play On Awake」のチェックを外す
-「Loop」にチェックを入れる
BGMManager.cs
using UnityEngine;
public class BGMManager : MonoBehaviour
{
private AudioSource audioSource;
public AudioClip mainBGM;
public AudioClip clearBGM;
public static BGMManager Instance;
void Awake()
{
if (Instance == null) Instance = this;
else Destroy(gameObject);
audioSource = GetComponent<AudioSource>();
}
public void PlayBGM(AudioClip clip,bool restart = false)
{
if (clip == null) return;
// すでに流れている曲と同じで restart=false なら何もしない
if (!restart && audioSource.clip == clip && audioSource.isPlaying) return;
audioSource.clip = clip;
audioSource.loop = true;
audioSource.Play();
}
public void PlayMainBGM()
{
PlayBGM(mainBGM, true);
}
// クリアした時に呼ぶ
public void PlayClearBGM()
{
PlayBGM(clearBGM, true);
}
}
インスペクターの設定
- MainBGM → メインBGM の AudioClip
- ClearBGM → クリアBGM の AudioClip
スタート時に BGM を再生する
BackgroundManager.cs の GameStart() 内に追加
BGMManager.Instance.PlayMainBGM();
オプションボタンと画面の作成(UI)
ゲーム中、常時表示されるUI画面(アイテムボックス横)にオプションボタンを追加します
オプション画面には、ゲーム中に音量を調節できるようにする UI を作ります。
▼ Hierarchy 構成例
GameUI
├─ ItemBox
└─ OptionButton
OptionPanel(背景より手前に表示)
├─ BGMSlider
| └─BGM(テキスト)
├─ SESlider
| └─ SE(テキスト)
└─ CloseOptionButton
✔ OptionPanel のポイント
- サイズ:800×600(ゲーム画面全体を覆う)
- 背景色:半透明の黒や白にしてメイン画面を隠す
- 非表示スタート(SetActive false)

OptionManager の作成
オプション画面の開閉を制御します。
OptionManager.cs
using UnityEngine;
public class OptionManager : MonoBehaviour
{
public GameObject optionPanel;
public void OpenOption()
{
optionPanel.SetActive(true);
Time.timeScale = 0f;
}
public void CloseOption()
{
optionPanel.SetActive(false);
Time.timeScale = 1f;
}
}
インスペクターの設定
OptionButtonにスクリプトをアタッチ、OptionPanel→ 該当オブジェクトを指定
- OptionButton:→ OnClick に OpenOption()
- CloseOptionButton:→ OnClick に CloseOption()
スライダーで BGM / SE の音量を調整する
BGMManager と SEManager にスライダー連動機能を追加します。
BGMManager.cs に追加
using UnityEngine.UI;
public Slider volumeSlider;
Start() に以下を追加
void Start()
{
if (volumeSlider != null)
{
volumeSlider.value = audioSource.volume;
volumeSlider.onValueChanged.AddListener(SetVolume);
}
}
音量変更メソッド
public void SetVolume(float value)
{
audioSource.volume = value;
}
▼ SEManager.cs も同様
※ただし audioSource → seSource に変更
public Slider volumeSlider;
void Start()
{
if (volumeSlider != null)
{
volumeSlider.value = seSource.volume;
volumeSlider.onValueChanged.AddListener(SetVolume);
}
}
public void SetVolume(float value)
{
seSource.volume = value;
}
インスペクター設定
- BGMSlider → BGMManager の volumeSlider にアタッチ
- SESlider → SEManager の volumeSlider にアタッチ
動作確認チェック
- ゲーム開始時に BGM が流れる
- OptionButton からオプション画面が開く
- BGM / SE スライダーが音量に反映される
- Close ボタンで再びゲームに戻る
まとめ
今回は オプション画面の作成 と
BGM / SE の音量調整スライダーの実装 を解説しました。
✅次回は、ゲーム開始時等に画面を徐々にフェードインさせる機能を実装します👇




コメント