Фикс звуков, только аккуратно
Звуки от 0.01 до 1 ставим, иначе +уши
This commit is contained in:
1 parent
36e6bc3bc2
commit
2b656412d5
151 files changed
+171596
-264
No files matched your search
@@ -67,6 +67,7 @@ namespace Code.App
|
||||
containerBuilder.AddSingleton(infrastructureUnit.AddComponent<CameraStateMachine>());
|
||||
}
|
||||
|
||||
// TODO Часть в сцены
|
||||
private void InstallStaticData(ContainerBuilder containerBuilder, out IStaticDataService staticDataService)
|
||||
{
|
||||
staticDataService = new StaticDataService();
|
||||
@@ -97,6 +98,8 @@ namespace Code.App
|
||||
containerBuilder.AddSingleton(staticDataService.DispatcherSoundListConfig, typeof(DispatcherSoundListConfig));
|
||||
containerBuilder.AddSingleton(staticDataService.EnemiesSoundListConfig, typeof(EnemiesSoundListConfig));
|
||||
containerBuilder.AddSingleton(staticDataService.AudioSourceSettingsConfigs, typeof(Dictionary<AudioSourceType, AudioSourceSettingsConfig>));
|
||||
|
||||
containerBuilder.AddSingleton(staticDataService.DefaultAudioSettingsConfig, typeof(DefaultAudioSettingsConfig));
|
||||
|
||||
containerBuilder.AddSingleton(staticDataService.OrderServiceConfig, typeof(OrderServiceConfig));
|
||||
containerBuilder.AddSingleton(staticDataService.OrderBoxConfig, typeof(OrderBoxConfig));
|
||||
|
||||
@@ -22,23 +22,31 @@ namespace Code.Audio
|
||||
private AudioSource _actionMusicSource;
|
||||
private AudioSource _peacefulMusicSource;
|
||||
|
||||
private Dictionary<AudioType,AudioMixerGroup> _audioMixerGroups = new ();
|
||||
private Dictionary<AudioType, AudioMixerGroup> _audioMixerGroups = new();
|
||||
private readonly AudioSourcePool _audioSourcePool;
|
||||
|
||||
private Dictionary<AudioSnapshotState, AudioMixerSnapshot> _snapshots = new();
|
||||
// private Dictionary<AudioSnapshotState, AudioMixerSnapshot> _snapshots = new();
|
||||
// Юнити не может - говнокод поможет.
|
||||
private Dictionary<AudioSnapshotState, Dictionary<AudioType, float>> _snapshotsVolumes = new();
|
||||
private Dictionary<AudioSourceType, AudioSourceSettingsConfig> _settings;
|
||||
|
||||
public AudioService(IAudioFactory audioFactory, Dictionary<AudioSourceType, AudioSourceSettingsConfig> settings)
|
||||
public AudioService(IAudioFactory audioFactory,
|
||||
Dictionary<AudioSourceType, AudioSourceSettingsConfig> settings,
|
||||
DefaultAudioSettingsConfig defaultAudioSettingsConfig)
|
||||
{
|
||||
_audioFactory = audioFactory;
|
||||
_audioSourcePool = new(settings);
|
||||
_settings = settings;
|
||||
|
||||
_snapshotsVolumes.Add(AudioSnapshotState.None,defaultAudioSettingsConfig.noneVolume);
|
||||
_snapshotsVolumes.Add(AudioSnapshotState.Menu,defaultAudioSettingsConfig.menuVolume);
|
||||
_snapshotsVolumes.Add(AudioSnapshotState.Action,defaultAudioSettingsConfig.actionVolume);
|
||||
_snapshotsVolumes.Add(AudioSnapshotState.Peaceful,defaultAudioSettingsConfig.peacefulVolume);
|
||||
}
|
||||
|
||||
// TODO Грязно, убрать снапшоты НАХУЙ
|
||||
public float GetSetting(AudioType type)
|
||||
{
|
||||
_snapshots[AudioSnapshotState.Peaceful].audioMixer.GetFloat(_audioMixerGroups[type].name, out float value);
|
||||
_mixer.GetFloat(_audioMixerGroups[type].name, out float value);
|
||||
|
||||
value = Mathf.Pow(10f, value / 20);
|
||||
|
||||
@@ -51,26 +59,30 @@ namespace Code.Audio
|
||||
switch (type)
|
||||
{
|
||||
case AudioType.Master:
|
||||
_snapshots[AudioSnapshotState.Menu].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
_snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
_snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
_snapshotsVolumes[AudioSnapshotState.Menu][type] = value;
|
||||
_snapshotsVolumes[AudioSnapshotState.Action][type] = value;
|
||||
_snapshotsVolumes[AudioSnapshotState.Peaceful][type] = value;
|
||||
_mixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
break;
|
||||
case AudioType.ActionMusic:
|
||||
_snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
_snapshotsVolumes[AudioSnapshotState.Action][type] = value;
|
||||
_mixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
break;
|
||||
case AudioType.PeacefulMusic:
|
||||
_snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
_snapshotsVolumes[AudioSnapshotState.Peaceful][type] = value;
|
||||
_mixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
break;
|
||||
case AudioType.MenuMusic:
|
||||
_snapshots[AudioSnapshotState.Menu].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
break;
|
||||
case AudioType.Creatures:
|
||||
case AudioType.SFX:
|
||||
case AudioType.DispatcherSounds:
|
||||
_snapshotsVolumes[AudioSnapshotState.Menu][type] = value;
|
||||
_mixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
break;
|
||||
case AudioType.SFX:
|
||||
case AudioType.Dispatcher:
|
||||
case AudioType.Courier:
|
||||
case AudioType.Enemies:
|
||||
_snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
_snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
_snapshotsVolumes[AudioSnapshotState.Action][type] = value;
|
||||
_snapshotsVolumes[AudioSnapshotState.Peaceful][type] = value;
|
||||
_mixer.SetFloat(_audioMixerGroups[type].name, volume);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -90,26 +102,20 @@ namespace Code.Audio
|
||||
_musicAudioSources.Add(MusicType.Menu, null);
|
||||
_musicAudioSources.Add(MusicType.Action, null);
|
||||
_musicAudioSources.Add(MusicType.Peaceful, null);
|
||||
|
||||
|
||||
_audioMixerGroups.Add(AudioType.Master, _mixer.FindMatchingGroups(AudioGroups.MasterGroup)[0]);
|
||||
_audioMixerGroups.Add(AudioType.SFX, _mixer.FindMatchingGroups(AudioGroups.SFXGroup)[0]);
|
||||
_audioMixerGroups.Add(AudioType.Creatures, _mixer.FindMatchingGroups(AudioGroups.CreaturesGroup)[0]);
|
||||
_audioMixerGroups.Add(AudioType.DispatcherSounds, _mixer.FindMatchingGroups(AudioGroups.DispatcherMusicGroup)[0]);
|
||||
_audioMixerGroups.Add(AudioType.SFX, _mixer.FindMatchingGroups(AudioGroups.SFXGroup)[0]);
|
||||
_audioMixerGroups.Add(AudioType.Dispatcher, _mixer.FindMatchingGroups(AudioGroups.DispatcherMusicGroup)[0]);
|
||||
_audioMixerGroups.Add(AudioType.Courier, _mixer.FindMatchingGroups(AudioGroups.CourierGroup)[0]);
|
||||
_audioMixerGroups.Add(AudioType.Enemies, _mixer.FindMatchingGroups(AudioGroups.EnemiesMusicGroup)[0]);
|
||||
_audioMixerGroups.Add(AudioType.Enemies, _mixer.FindMatchingGroups(AudioGroups.EnemiesGroup)[0]);
|
||||
_audioMixerGroups.Add(AudioType.MenuMusic, _musicAudioGroups[MusicType.Menu]);
|
||||
_audioMixerGroups.Add(AudioType.ActionMusic, _musicAudioGroups[MusicType.Action]);
|
||||
_audioMixerGroups.Add(AudioType.PeacefulMusic, _musicAudioGroups[MusicType.Peaceful]);
|
||||
|
||||
_snapshots[AudioSnapshotState.None] = _mixer.FindSnapshot(AudioGroups.NoneSnapshot);
|
||||
_snapshots[AudioSnapshotState.Menu] = _mixer.FindSnapshot(AudioGroups.MenuSnapshot);
|
||||
_snapshots[AudioSnapshotState.Action] = _mixer.FindSnapshot(AudioGroups.ActionSnapshot);
|
||||
_snapshots[AudioSnapshotState.Peaceful] = _mixer.FindSnapshot(AudioGroups.PeacefulSnapshot);
|
||||
|
||||
await _audioFactory.LoadAudioSourcePrefab(_audioSourcePool.Initialize);
|
||||
}
|
||||
|
||||
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
|
||||
private Dictionary<MusicType, CancellationTokenSource> _cancellationTokenSources = new();
|
||||
private Dictionary<MusicType, AudioSource> _musicAudioSources = new();
|
||||
private Dictionary<MusicType, AudioMixerGroup> _musicAudioGroups = new();
|
||||
@@ -129,14 +135,11 @@ namespace Code.Audio
|
||||
|
||||
_musicAudioSources[musicType].Play();
|
||||
|
||||
// await UniTask.WaitUntilValueChanged(_musicAudioSources[musicType],
|
||||
// _ => !_musicAudioSources[musicType].isPlaying,
|
||||
// cancellationToken: _cancellationTokenSources[musicType].Token);
|
||||
await UniTask.NextFrame();
|
||||
var (isCanceled, _) = await UniTask.WaitUntilValueChanged(_musicAudioSources[musicType],
|
||||
_ => !_musicAudioSources[musicType].isPlaying,
|
||||
cancellationToken: _cancellationTokenSources[musicType].Token).SuppressCancellationThrow();
|
||||
|
||||
Debug.LogError("Music skipping");
|
||||
if (isCanceled)
|
||||
{
|
||||
_cancellationTokenSources[musicType].Dispose();
|
||||
@@ -148,13 +151,13 @@ namespace Code.Audio
|
||||
return;
|
||||
}
|
||||
|
||||
PlayRandomMusicUntilHumanityWillBeDestroyedForTheySins(musicType);
|
||||
PlayRandomMusicUntilHumanityWillBeDestroyedForTheySins(musicType).Forget();
|
||||
}
|
||||
|
||||
public async UniTaskVoid GladlyAskToStopMusic(MusicType musicType,
|
||||
AudioSnapshotState audioSnapshotState = AudioSnapshotState.None, float time = 1f, Action callback = null)
|
||||
{
|
||||
TransitToSnapshot(audioSnapshotState, time);
|
||||
// TransitToSnapshot(audioSnapshotState, time);
|
||||
|
||||
await UniTask.WaitForSeconds(time);
|
||||
|
||||
@@ -162,7 +165,6 @@ namespace Code.Audio
|
||||
|
||||
callback?.Invoke();
|
||||
}
|
||||
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
|
||||
|
||||
public void StopMusic()
|
||||
{
|
||||
@@ -172,29 +174,39 @@ namespace Code.Audio
|
||||
|
||||
public void GladlyAskToStopMusic(Action callback = null)
|
||||
{
|
||||
TransitToSnapshot(AudioSnapshotState.None);
|
||||
// TransitToSnapshot(AudioSnapshotState.None);
|
||||
_peacefulMusicSource.Stop();
|
||||
_actionMusicSource.Stop();
|
||||
|
||||
callback?.Invoke();
|
||||
}
|
||||
|
||||
public void TransitToSnapshot(AudioSnapshotState state, float time = 1f)
|
||||
public void TransitToSnapshot(AudioSnapshotState state, float time = 1)
|
||||
{
|
||||
_snapshots[state].TransitionTo(time);
|
||||
foreach (var key in _audioMixerGroups.Keys)
|
||||
_mixer.DOSetFloat(_audioMixerGroups[key].name, Mathf.Log10(_snapshotsVolumes[state][key]) * 20, time);
|
||||
}
|
||||
|
||||
|
||||
public void PlaySFX(SFXSounds sfxId, Vector3 position)
|
||||
{
|
||||
_audioSourcePool.PlayOneShot(_audioFactory.SFXAudios[(int)sfxId], position, _audioMixerGroups[AudioType.SFX]).Forget();
|
||||
_audioSourcePool
|
||||
.PlayOneShot(_audioFactory.SFXAudios[(int)sfxId], position, _audioMixerGroups[AudioType.SFX]).Forget();
|
||||
}
|
||||
|
||||
public void PlayEnemy(EnemiesSounds enemySoundId, Vector3 position)
|
||||
{
|
||||
_audioSourcePool.PlayOneShot(_audioFactory.EnemiesAudios[(int)enemySoundId], position, _audioMixerGroups[AudioType.Enemies]).Forget();
|
||||
_audioSourcePool.PlayOneShot(_audioFactory.EnemiesAudios[(int)enemySoundId], position,
|
||||
_audioMixerGroups[AudioType.Enemies]).Forget();
|
||||
}
|
||||
|
||||
public AudioSource GetSourceOfGroup(AudioType group)
|
||||
{
|
||||
AudioSource source = _audioSourcePool.GetSource();
|
||||
source.outputAudioMixerGroup = _audioMixerGroups[group];
|
||||
return source;
|
||||
}
|
||||
|
||||
public AudioSource GetSourceOfGroup(AudioType group) => _audioSourcePool.GetSource();
|
||||
public void ReleaseSourceOfGroup(AudioSource source) => _audioSourcePool.ReleaseSource(source);
|
||||
|
||||
// Чинить долго и дорого пусть Артёмов будет много, ведь он наш друг
|
||||
@@ -204,18 +216,21 @@ namespace Code.Audio
|
||||
public void PlayDispatcher(DispatcherSounds dispatcherSoundId)
|
||||
{
|
||||
OnDispatcherStarted?.Invoke();
|
||||
_audioSourcePool.PlayOneShot(_audioFactory.DispatcherAudios[(int)dispatcherSoundId], _audioMixerGroups[AudioType.DispatcherSounds],
|
||||
_audioSourcePool.PlayOneShot(_audioFactory.DispatcherAudios[(int)dispatcherSoundId],
|
||||
_audioMixerGroups[AudioType.Dispatcher],
|
||||
AudioSourceType.NoBlend, () => OnDispatcherEnded?.Invoke()).Forget();
|
||||
}
|
||||
|
||||
private CancellationTokenSource _testClipCancellationTokenSource = new();
|
||||
private void ResetCurrentTestAudioSource() => _currentTestClipAudioType = AudioType.Master;
|
||||
|
||||
private AudioType _currentTestClipAudioType;
|
||||
|
||||
// TODO Засунуть в словарь
|
||||
public void PlayTestClip(AudioType audioType)
|
||||
{
|
||||
if(_currentTestClipAudioType == audioType) return;
|
||||
|
||||
if (_currentTestClipAudioType == audioType) return;
|
||||
|
||||
_testClipCancellationTokenSource.Cancel();
|
||||
_testClipCancellationTokenSource = new();
|
||||
|
||||
@@ -225,6 +240,5 @@ namespace Code.Audio
|
||||
_audioMixerGroups[audioType], _testClipCancellationTokenSource,
|
||||
AudioSourceType.NoBlend, ResetCurrentTestAudioSource).Forget();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -9,9 +9,8 @@ namespace Code.Audio
|
||||
public enum AudioType
|
||||
{
|
||||
Master,
|
||||
MenuMusic,
|
||||
Creatures,
|
||||
DispatcherSounds,
|
||||
MenuMusic,
|
||||
Dispatcher,
|
||||
SFX,
|
||||
Courier,
|
||||
Enemies,
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
using System.Collections.Generic;
|
||||
using AYellowpaper.SerializedCollections;
|
||||
using UnityEngine;
|
||||
using AudioType = Code.Audio.AudioType;
|
||||
|
||||
namespace Code.Configs
|
||||
{
|
||||
[CreateAssetMenu(fileName = "DefaultAudioSettingsConfig", menuName = "Audio/DefaultAudioSettings")]
|
||||
public class DefaultAudioSettingsConfig : ScriptableObject
|
||||
{
|
||||
[Header("Menu")]
|
||||
[SerializedDictionary("AudioType", "Volume")]
|
||||
public SerializedDictionary<Audio.AudioType, float> menuVolume = new();
|
||||
|
||||
[Header("Action")]
|
||||
[SerializedDictionary("AudioType", "Volume")]
|
||||
public SerializedDictionary<Audio.AudioType, float> actionVolume = new();
|
||||
|
||||
[Header("Peaceful")]
|
||||
[SerializedDictionary("AudioType", "Volume")]
|
||||
public SerializedDictionary<Audio.AudioType, float> peacefulVolume = new();
|
||||
|
||||
[Header("None")]
|
||||
[SerializedDictionary("AudioType", "Volume")]
|
||||
public SerializedDictionary<Audio.AudioType, float> noneVolume = new();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 36d35c52933d4d4ba836f75b05c4810f
|
||||
timeCreated: 1764754933
|
||||
@@ -20,7 +20,7 @@ namespace Code.Constants
|
||||
public const string ActionMusicGroup = "Action";
|
||||
public const string DispatcherMusicGroup = "Dispatcher";
|
||||
public const string CourierGroup = "Courier";
|
||||
public const string EnemiesMusicGroup = "Enemies";
|
||||
public const string EnemiesGroup = "Enemies";
|
||||
|
||||
public const string PeacefulSnapshot = "Peaceful";
|
||||
public const string ActionSnapshot = "Action";
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Code.Gameplay.Enemies
|
||||
{
|
||||
private IAudioService _audioService;
|
||||
private IAudioFactory _audioFactory;
|
||||
private AudioSource _audioSource;
|
||||
[SerializeField] private AudioSource _audioSource;
|
||||
[SerializeField] private EnemiesSounds stepId;
|
||||
|
||||
[Inject]
|
||||
@@ -17,7 +17,7 @@ namespace Code.Gameplay.Enemies
|
||||
_audioService = audioService;
|
||||
_audioSource = audioService.GetSourceOfGroup(Audio.AudioType.Enemies);
|
||||
_audioSource.transform.position = transform.position;
|
||||
|
||||
_audioSource.spatialBlend = 0;
|
||||
_audioFactory = audioFactory;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,9 +3,11 @@ using Code.Configs;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Reflex.Attributes;
|
||||
using Reflex.Core;
|
||||
using Reflex.Extensions;
|
||||
using Reflex.Injectors;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace Code.Gameplay.Enemies
|
||||
{
|
||||
@@ -27,15 +29,14 @@ namespace Code.Gameplay.Enemies
|
||||
)
|
||||
.ToUniTask();
|
||||
|
||||
// Работает, пока не трогаю
|
||||
AttributeInjector.Inject(enemyObj, Container.ProjectContainer);
|
||||
GameObjectInjector.InjectRecursive(enemyObj, SceneManager.GetActiveScene().GetSceneContainer());
|
||||
|
||||
return enemyObj.GetComponent<BaseEnemy>();
|
||||
}
|
||||
|
||||
public void ReleaseEnemy(BaseEnemy enemy)
|
||||
{
|
||||
if (enemy == null) return;
|
||||
if (!enemy) return;
|
||||
|
||||
enemy.gameObject.SetActive(false);
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ namespace Code.StaticData
|
||||
AudioTestClipsConfig AudioTestClipsConfig { get; }
|
||||
GeneratorConfig GeneratorConfig { get; }
|
||||
CourierSoundListConfig CourierSoundListConfig { get; }
|
||||
DefaultAudioSettingsConfig DefaultAudioSettingsConfig { get; }
|
||||
void Load();
|
||||
Task<T> InstantiateAsset<T>(AssetReference assetReference) where T : Behaviour;
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ namespace Code.StaticData
|
||||
public EnemiesSoundListConfig EnemiesSoundListConfig { get; private set; }
|
||||
public AudioTestClipsConfig AudioTestClipsConfig { get; private set; }
|
||||
public CourierSoundListConfig CourierSoundListConfig { get; private set; }
|
||||
public DefaultAudioSettingsConfig DefaultAudioSettingsConfig { get; private set; }
|
||||
|
||||
public DrunkenGrandpaConfig DrunkenGrandpaConfig {get; private set;}
|
||||
public CockroachConfig CockroachConfig { get; private set; }
|
||||
@@ -67,6 +68,7 @@ namespace Code.StaticData
|
||||
private void LoadAudioConfigs()
|
||||
{
|
||||
AudioMixerConfig = Resources.Load<AudioMixerConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "AudioMixerConfig"));
|
||||
DefaultAudioSettingsConfig = Resources.Load<DefaultAudioSettingsConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "DefaultAudioSettingsConfig"));
|
||||
SoundtrackListConfig = Resources.Load<SoundtrackListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "SoundtrackListConfig"));
|
||||
AudioTestClipsConfig = Resources.Load<AudioTestClipsConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "AudioTestClipsConfig"));
|
||||
SFXListConfig = Resources.Load<SFXListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "SFXListConfig"));
|
||||
|
||||
@@ -14,6 +14,7 @@ namespace Code.UI
|
||||
[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;
|
||||
@@ -28,10 +29,13 @@ namespace Code.UI
|
||||
sfx.value = _audioService.GetSetting(AudioType.SFX);
|
||||
sfx.onValueChanged.AddListener(OnSFXUpdate);
|
||||
|
||||
dispatcher.value = _audioService.GetSetting(AudioType.DispatcherSounds);
|
||||
dispatcher.value = _audioService.GetSetting(AudioType.Dispatcher);
|
||||
dispatcher.onValueChanged.AddListener(OnDispatcherUpdate);
|
||||
|
||||
creatures.value = _audioService.GetSetting(AudioType.Creatures);
|
||||
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);
|
||||
@@ -51,15 +55,20 @@ namespace Code.UI
|
||||
_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.DispatcherSounds, value);
|
||||
_audioService.PlayTestClip(AudioType.DispatcherSounds);
|
||||
_audioService.ChangeSetting(AudioType.Dispatcher, value);
|
||||
_audioService.PlayTestClip(AudioType.Dispatcher);
|
||||
}
|
||||
private void OnEnemiesUpdate(float value)
|
||||
{
|
||||
_audioService.ChangeSetting(AudioType.Creatures, value);
|
||||
_audioService.PlayTestClip(AudioType.Creatures);
|
||||
_audioService.ChangeSetting(AudioType.Enemies, value);
|
||||
_audioService.PlayTestClip(AudioType.Enemies);
|
||||
}
|
||||
private void OnMenuMusicUpdate(float value)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user