Sliderでサウンド調節できるようにしよう!
前回からSliderを使ってゲーム内のBGMやSEの音量を変更できる機能の実装方法を解説しています。

こちらが完成品になります。全3回すべて同じようにおこなうと動画のようなものができるようになります。(Displayのサイズ設定によりUIの位置が多少誤差があります)
Sliderとtextを連携させよう!
今回は、SliderとTextを連携させてSliderのValueの値が変化するとTextの値もSliderのValueの値に応じて変化するようします。
スクリプトを作成
Sliderを動かすと、Slider ComponentのOn Value Changedという関数が呼び出されます。これを利用してSliderを動かすとtextが変化するスクリプトを作成していきます。
Assets→Create→C#Script
スクリプト名はSoundPresenterとします。
SoundPresenterスクリプト
|
スクリプトの内容は、コメントで説明してあるのでコメントをしっかり見て理解してください。
SoundPresenterの追加
Assetsフォルダに入っているだけでは、スクリプトを使うことができません。GameObjectにAdd Componentすることで初めて使うことができるようになります。先ほど作成した、SoundPresenterスクリプトを空のGameObjectにAdd Componentしましょう。
Hierarchy→Create Empty
このままGameObjectの名前がGameObjectでは、どんなObjectなのかわからないので、GameObjectの名前をSoundPresenterに変更しておいてください。
SoundPresenterにAssetsフォルダにあるSoundPresenterスクリプトをドラックアンドドロップして追加します。
SoundPresenterにtextとSliderを追加します。
以下のように追加します。
- Bgm Volume TextにはBGMMenuViewのVolumeTextを追加
- BGM SliderにはBGMMenuViewのSliderを追加
- Se Volume TextにはSEMenuViewのVolumeTextを追加
- Se SliderにはSEMenuViewのSliderを追加
すべて追加すると画像のようになります。
このままでは、まだテキストとスライダーが連動されていません。
SoundPresenterスクリプトで作成したOnChangeBGMSlider関数とOnChangeSESlider関数をSlider ComponentのOn Value Changedに追加してあげる必要があります。
それでは、追加してみましょう。
まずは、BGMMenuViewのSliderから設定していきます。
Slider ComponentのOn Value Changedの+ボタンを押してください。
On Value Changedの設定をします。
- None(Object)になっている場所にHierarchyからSoundPresenterをドラックアンドドロップして追加します。
- No FunctionになっているところにはSoundPresenter→OnChangedBGMSliderを追加します。なおSEの場合はOnChangedSESliderを追加してください。
全て設定すると以下の画像のようになります。
どうようの操作をSEMenuViewでも行ってください。
以下の画像のようになります
最後にButtonを押したときに呼び出される関数の設定もついでにやっておきます。
Button ComponentのOn Click+ボタンを押してください。
On Clickの設定をします。
- None(Object)になっている場所にHierarchyからSoundPresenterをドラックアンドドロップして追加します。
- No FunctionになっているところにはSoundPresenter→OnPushButtonを追加します。
全て設定すると以下の画像のようになります。
以上で今回の設定はすべて終わりました。
次回はBGMとSEをSliderの変化によって音量が調節できるようにします。

コメント