ふりかえり
前回はBGMを実装して、草原や森にそれぞれの雰囲気が加わりました!
音があると、世界への没入感がグッと増しますね!
設定画面を実装!
今回は、設定画面を作ります!
- プレイヤーステータスの確認
- SE・BGMの音量調整
この2つをUI上から確認・操作できるようにします!
スクリプトの変更
SettingsManager.cs
- settingsButton を押すと settingsPanel の表示を切り替えます。
- プレイヤーの名前やレベル、攻撃力や会心率などを TextMeshProUGUI に表示します。
- SE と BGM それぞれのスライダーで音量を変更可能にします。
- 変更時には AudioManager に値を渡して、リアルタイムに音量を反映!
using UnityEngine; using UnityEngine.UI; using TMPro; public class SettingsManager : MonoBehaviour { [Header("UI References")] public GameObject settingsPanel; // 設定パネル public Button settingsButton; // 設定ボタン(開閉用) [Header("プレイヤー情報表示")] public TextMeshProUGUI playerNameText; public TextMeshProUGUI playerLevelText; public TextMeshProUGUI playerHPText; public TextMeshProUGUI playerAttackText; public TextMeshProUGUI playerDefenseText; public TextMeshProUGUI playerCriticalRateText; public TextMeshProUGUI playerCriticalDamageText; public TextMeshProUGUI playerGoldText; public TextMeshProUGUI playerDiamondText; [Header("音量設定")] public Slider seVolumeSlider; // SE音量スライダー public Slider bgmVolumeSlider; // BGM音量スライダー public TextMeshProUGUI seVolumeText; // SE音量表示テキスト public TextMeshProUGUI bgmVolumeText; // BGM音量表示テキスト [Header("参照")] public PlayerManager playerManager; public AudioManager audioManager; private bool isSettingsOpen = false; void Start() { // 設定ボタンのイベントリスナーを設定 if (settingsButton != null) { settingsButton.onClick.AddListener(ToggleSettingsPanel); } // スライダーのイベントリスナーを設定 if (seVolumeSlider != null) { seVolumeSlider.onValueChanged.AddListener(OnSEVolumeChanged); } if (bgmVolumeSlider != null) { bgmVolumeSlider.onValueChanged.AddListener(OnBGMVolumeChanged); } // 初期設定:設定パネルは閉じた状態 if (settingsPanel != null) { settingsPanel.SetActive(false); } isSettingsOpen = false; // 音量スライダーの初期値を設定 InitializeVolumeSliders(); } // 設定パネルの表示/非表示を切り替え public void ToggleSettingsPanel() { isSettingsOpen = !isSettingsOpen; if (settingsPanel != null) { settingsPanel.SetActive(isSettingsOpen); } if (isSettingsOpen) { UpdatePlayerInfo(); UpdateVolumeDisplay(); } } // プレイヤー情報を更新 private void UpdatePlayerInfo() { if (playerManager == null || playerManager.player == null) return; var player = playerManager.player; if (playerNameText != null) playerNameText.text = $"名前: {player.name}"; if (playerLevelText != null) playerLevelText.text = $"レベル: {player.level}"; if (playerHPText != null) playerHPText.text = $"HP: {player.currentHP}/{player.maxHP}"; if (playerAttackText != null) playerAttackText.text = $"攻撃力: {player.attack}"; if (playerDefenseText != null) playerDefenseText.text = $"防御力: {player.defense}"; if (playerCriticalRateText != null) playerCriticalRateText.text = $"会心率: {player.criticalRate * 100:F1}%"; if (playerCriticalDamageText != null) playerCriticalDamageText.text = $"会心倍率: {player.criticalDamageMultiplier:F1}倍"; if (playerGoldText != null) playerGoldText.text = $"ゴールド: {player.gold}"; if (playerDiamondText != null) playerDiamondText.text = $"ダイヤ: {player.diamond}"; } // 音量スライダーの初期化 private void InitializeVolumeSliders() { if (audioManager != null) { if (seVolumeSlider != null) { seVolumeSlider.value = audioManager.seVolume; } if (bgmVolumeSlider != null) { bgmVolumeSlider.value = audioManager.bgmVolume; } } } // 音量表示を更新 private void UpdateVolumeDisplay() { if (audioManager != null) { if (seVolumeText != null) { seVolumeText.text = $"SE音量: {(audioManager.seVolume * 100):F0}%"; } if (bgmVolumeText != null) { bgmVolumeText.text = $"BGM音量: {(audioManager.bgmVolume * 100):F0}%"; } } } // SE音量変更時の処理 private void OnSEVolumeChanged(float value) { if (audioManager != null) { audioManager.SetSEVolume(value); UpdateVolumeDisplay(); } } // BGM音量変更時の処理 private void OnBGMVolumeChanged(float value) { if (audioManager != null) { audioManager.SetBGMVolume(value); UpdateVolumeDisplay(); } } // 設定パネルが開いているかどうかを取得 public bool IsSettingsOpen() { return isSettingsOpen; } }
Unityでの設定
- SettingsManager を空のGameObjectに追加
- 設定画面パネル、ボタン、テキスト、スライダーなどのUIを作成
- SettingsManager に各UI要素をInspectorからアタッチ

動作確認
右下のSettingsボタンをタップすると設定画面が開きます!
- プレイヤーのステータスが一覧で表示!
- SE・BGM音量のスライダーを動かすと、リアルタイムに音量が変化!
ゲームの細かな調整ができるようになって、より快適にプレイできます!

まとめ
今回は設定画面を実装しました!
- ステータスの見える化
- 音量の調整機能
このようにゲームプレイに直接関係しない便利機能をまとめて配置するのが「設定画面」です。
次回予告
次回はいよいよガチャ機能を実装!
お楽しみに!