84 lines
3.0 KiB
C#
84 lines
3.0 KiB
C#
using System;
|
|
using Code.Audio;
|
|
using Reflex.Attributes;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.Serialization;
|
|
using UnityEngine.UI;
|
|
using AudioType = Code.Audio.AudioType;
|
|
|
|
namespace Code.UI
|
|
{
|
|
public class SettingsPanel : UIElement
|
|
{
|
|
[SerializeField] private Slider master;
|
|
[SerializeField] private Slider sfx;
|
|
[SerializeField] private Slider dispatcher;
|
|
[SerializeField] private Slider creatures;
|
|
[SerializeField] private Slider menuMusic;
|
|
[SerializeField] private Slider gameplayMusic;
|
|
|
|
[Inject] IAudioService _audioService;
|
|
|
|
private void Start()
|
|
{
|
|
master.SetValueWithoutNotify(_audioService.GetSetting(AudioType.Master));
|
|
master.onValueChanged.AddListener(OnMasterUpdate);
|
|
|
|
sfx.value = _audioService.GetSetting(AudioType.SFX);
|
|
sfx.onValueChanged.AddListener(OnSFXUpdate);
|
|
|
|
dispatcher.value = _audioService.GetSetting(AudioType.DispatcherSounds);
|
|
dispatcher.onValueChanged.AddListener(OnDispatcherUpdate);
|
|
|
|
creatures.value = _audioService.GetSetting(AudioType.Creatures);
|
|
creatures.onValueChanged.AddListener(OnEnemiesUpdate);
|
|
|
|
menuMusic.value = _audioService.GetSetting(AudioType.MenuMusic);
|
|
menuMusic.onValueChanged.AddListener(OnMenuMusicUpdate);
|
|
|
|
gameplayMusic.value = _audioService.GetSetting(AudioType.GameplayMusic);
|
|
gameplayMusic.onValueChanged.AddListener(OnGameplayUpdate);
|
|
}
|
|
|
|
private void OnMasterUpdate(float value)
|
|
{
|
|
_audioService.ChangeSetting(AudioType.Master, value);
|
|
// _audioService.PlayTestClip(AudioType.Master); XDXDXDXD TODO Убрать или придумать что-нибудь
|
|
}
|
|
private void OnSFXUpdate(float value)
|
|
{
|
|
_audioService.ChangeSetting(AudioType.SFX, value);
|
|
_audioService.PlayTestClip(AudioType.SFX);
|
|
}
|
|
private void OnDispatcherUpdate(float value)
|
|
{
|
|
_audioService.ChangeSetting(AudioType.DispatcherSounds, value);
|
|
_audioService.PlayTestClip(AudioType.DispatcherSounds);
|
|
}
|
|
private void OnEnemiesUpdate(float value)
|
|
{
|
|
_audioService.ChangeSetting(AudioType.Creatures, value);
|
|
_audioService.PlayTestClip(AudioType.Creatures);
|
|
}
|
|
private void OnMenuMusicUpdate(float value)
|
|
{
|
|
_audioService.ChangeSetting(AudioType.MenuMusic, value);
|
|
_audioService.PlayTestClip(AudioType.MenuMusic);
|
|
}
|
|
private void OnGameplayUpdate(float value)
|
|
{
|
|
_audioService.ChangeSetting(AudioType.GameplayMusic, value);
|
|
_audioService.PlayTestClip(AudioType.GameplayMusic);
|
|
}
|
|
|
|
public override void Hide()
|
|
{
|
|
base.Hide();
|
|
}
|
|
public override void Show()
|
|
{
|
|
base.Show();
|
|
}
|
|
}
|
|
} |