はじめに
なるべく早くかつなにも考えずに作れる音量調整バーの作り方を紹介します。
なお今回のやり方ではBGMとSEを別に調整することはできないので unity1weekなど、雑でいいからすぐに用意したい人向けのものになります。
作成環境はUnity2019.3.0です
作成方法
1.sliderの作成
まずは音量調整用のsliderを作成します。
2.音量調整用スクリプトの作成
音量調整用スクリプトの作成をします。 以下のコードのコピペすれOKです
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;//Sliderを使用するために必要 [RequireComponent(typeof(Slider))] public class SoundSlider : MonoBehaviour { Slider m_Slider;//音量調整用スライダー [SerializeField] bool m_isInput;//キー入力で調整バーを動かせるようにするか [SerializeField] float m_ScroolSpeed = 1;//キー入力で調整バーを動かすスピード void Awake() { m_Slider = GetComponent<Slider>(); m_Slider.value = AudioListener.volume ; } private void OnEnable() { m_Slider.value = AudioListener.volume; //スライダーの値が変更されたら音量も変更する m_Slider.onValueChanged.AddListener((sliderValue) => AudioListener.volume = sliderValue); } private void OnDisable() { m_Slider.onValueChanged.RemoveAllListeners(); } //キー入力による操作 いらないなら削除してもOK void Update() { float v = m_Slider.value; if (m_isInput) { if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) { v -= m_ScroolSpeed * Time.deltaTime; } if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.RightArrow)) { v += m_ScroolSpeed * Time.deltaTime; } } v = Mathf.Clamp(v, 0, 1); m_Slider.value = v; } }
3.完成
作成したスクリプトをsliderオブジェクトにアタッチすれば完成です。
あとは自分の表示したいタイミングで表示すればOKです
isInputをオンにするとキーボードでも音量調節ができます
現在設定されている音量の確認方法はこちら
4.Q&A
Q スライダーが反応しない
A シーン上にEvent Systemがあるか確認してください