95 lines
3.5 KiB
C#
95 lines
3.5 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 courier;
|
|
[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.Dispatcher);
|
|
dispatcher.onValueChanged.AddListener(OnDispatcherUpdate);
|
|
|
|
courier.value = _audioService.GetSetting(AudioType.Courier);
|
|
courier.onValueChanged.AddListener(OnCourierUpdate);
|
|
|
|
creatures.value = _audioService.GetSetting(AudioType.Enemies);
|
|
creatures.onValueChanged.AddListener(OnEnemiesUpdate);
|
|
|
|
menuMusic.value = _audioService.GetSetting(AudioType.MenuMusic);
|
|
menuMusic.onValueChanged.AddListener(OnMenuMusicUpdate);
|
|
|
|
gameplayMusic.value = _audioService.GetSetting(AudioType.ActionMusic);
|
|
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 OnCourierUpdate(float value)
|
|
{
|
|
_audioService.ChangeSetting(AudioType.Courier, value);
|
|
_audioService.PlayTestClip(AudioType.Courier);
|
|
}
|
|
private void OnDispatcherUpdate(float value)
|
|
{
|
|
_audioService.ChangeSetting(AudioType.Dispatcher, value);
|
|
_audioService.PlayTestClip(AudioType.Dispatcher);
|
|
}
|
|
private void OnEnemiesUpdate(float value)
|
|
{
|
|
_audioService.ChangeSetting(AudioType.Enemies, value);
|
|
_audioService.PlayTestClip(AudioType.Enemies);
|
|
}
|
|
private void OnMenuMusicUpdate(float value)
|
|
{
|
|
_audioService.ChangeSetting(AudioType.MenuMusic, value);
|
|
_audioService.ChangeSetting(AudioType.DeathMusic, value);
|
|
_audioService.PlayTestClip(AudioType.MenuMusic);
|
|
}
|
|
private void OnGameplayUpdate(float value)
|
|
{
|
|
_audioService.ChangeSetting(AudioType.ActionMusic, value);
|
|
_audioService.ChangeSetting(AudioType.PeacefulMusic, value);
|
|
_audioService.PlayTestClip(AudioType.ActionMusic);
|
|
}
|
|
|
|
public override void Hide()
|
|
{
|
|
base.Hide();
|
|
}
|
|
public override void Show()
|
|
{
|
|
base.Show();
|
|
}
|
|
}
|
|
} |