【Unity】Sliderでサウンド調節できるようにしよう!②

Audio Unity

Sliderでサウンド調節できるようにしよう!

前回からSliderを使ってゲーム内のBGMやSEの音量を変更できる機能の実装方法を解説しています。

【Unity】Sliderでサウンド調節できるようにしよう!①
今回からSliderを使ってゲーム内のBGMやSEの音量を変更できる機能の実装方法を解説していきます。 全3回すべて同じようにおこなうとこちらのものができるようになります。(Displayのサイズ設定によりUIの位置が多少誤差があります)

こちらが完成品になります。全3回すべて同じようにおこなうと動画のようなものができるようになります。(Displayのサイズ設定によりUIの位置が多少誤差があります)

Sliderとtextを連携させよう!

今回は、SliderとTextを連携させてSliderのValueの値が変化するとTextの値もSliderのValueの値に応じて変化するようします。

スクリプトを作成

Sliderを動かすと、Slider ComponentのOn Value Changedという関数が呼び出されます。これを利用してSliderを動かすとtextが変化するスクリプトを作成していきます。

Assets→Create→C#Script

Add-Script

スクリプト名はSoundPresenterとします。

SoundPresenterスクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class SoundPresenter : MonoBehaviour
{
//BGM
[SerializeField] Text bgmVolumeText;//BGMMenuViewのvolumeTextを取得
[SerializeField] Slider bgmSlider;//BGMMenuViewのsliderを取得

//SE
[SerializeField] Text seVolumeText;//SEMenuViewのvolumeTextを取得
[SerializeField] Slider seSlider;//SEMenuViewのsliderを取得

void Start()
{

}

//BGMMenuViewのSliderを動かしたときに呼び出す関数を作成
public void OnChangedBGMSlider()
{
//volumeTextの値をSliderのvalueに変更
bgmVolumeText.text = string.Format("{0:0}", bgmSlider.value*100);
}

//SEMenuViewのSliderを動かしたときに呼び出す関数を作成
public void OnChangedSESlider()
{
//volumeTextの値をSliderのvalueに変更
seVolumeText.text = string.Format("{0:0}", seSlider.value*100);
}

//Buttonを押したときに呼ばれる関数
public void OnPushButton()
{
Debug.Log("Buttonを押しました");
}
}

スクリプトの内容は、コメントで説明してあるのでコメントをしっかり見て理解してください。

SoundPresenterの追加

Assetsフォルダに入っているだけでは、スクリプトを使うことができません。GameObjectにAdd Componentすることで初めて使うことができるようになります。先ほど作成した、SoundPresenterスクリプトを空のGameObjectにAdd Componentしましょう。

Hierarchy→Create Empty

Create-Empty

このままGameObjectの名前がGameObjectでは、どんなObjectなのかわからないので、GameObjectの名前をSoundPresenterに変更しておいてください。

SoundPresenterにAssetsフォルダにあるSoundPresenterスクリプトをドラックアンドドロップして追加します。

Add-Sound-Presenter

SoundPresenterにtextとSliderを追加します。

以下のように追加します。

  • Bgm Volume TextにはBGMMenuViewのVolumeTextを追加
  • BGM SliderにはBGMMenuViewのSliderを追加
  • Se Volume TextにはSEMenuViewのVolumeTextを追加
  • Se SliderにはSEMenuViewのSliderを追加

すべて追加すると画像のようになります。

Sound-Presenter-Add-Game-Object

このままでは、まだテキストとスライダーが連動されていません。

SoundPresenterスクリプトで作成したOnChangeBGMSlider関数とOnChangeSESlider関数をSlider ComponentのOn Value Changedに追加してあげる必要があります。

それでは、追加してみましょう。

まずは、BGMMenuViewのSliderから設定していきます。

Slider ComponentのOn Value Changedの+ボタンを押してください。

On-Value-Changed-Add-To-List

On Value Changedの設定をします。

  • None(Object)になっている場所にHierarchyからSoundPresenterをドラックアンドドロップして追加します。

Sound-Presenter

  • No FunctionになっているところにはSoundPresenter→OnChangedBGMSliderを追加します。なおSEの場合はOnChangedSESliderを追加してください。

On-Changed-BGM-Slider

全て設定すると以下の画像のようになります。

Sound-Presenter-Add-BGM-Slider

どうようの操作をSEMenuViewでも行ってください。

以下の画像のようになります

Sound-Presenter-Add-SE-Slider

最後にButtonを押したときに呼び出される関数の設定もついでにやっておきます。

Button ComponentのOn Click+ボタンを押してください。

On-Click

On Clickの設定をします。

  • None(Object)になっている場所にHierarchyからSoundPresenterをドラックアンドドロップして追加します。

Sound-Presenter-Add-On-Click

  • No FunctionになっているところにはSoundPresenter→OnPushButtonを追加します。

全て設定すると以下の画像のようになります。

On-Click-Add-Sound-Presenter

以上で今回の設定はすべて終わりました。

次回はBGMとSEをSliderの変化によって音量が調節できるようにします。

【Unity】Sliderでサウンド調節できるようにしよう!③
2回にわたってSliderを使ってゲーム内のBGMやSEの音量を変更できる機能の実装方法を解説してきましたが今回が最終回になります。今回は、実際にBGMとSEを追加してSliderで音量を調節できるようにしていきます。

コメント

タイトルとURLをコピーしました