Музыка есть

This commit is contained in:
ThomasCharester committed 2025-11-13 23:13:41 +03:00
1 parent 557c4c3dee
commit 346dc97fef
67 files changed
+774 -66

No files matched your search

@@ -12,7 +12,7 @@ namespace Code.Audio
{
public class AudioFactory : IAudioFactory
{
private AssetReference _audioMixerPrefab;
public AudioMixer AudioMixer { get; private set; }
private AssetReference _audioSourcePrefab;
private AssetReference[] _peacefulSoundtrack;
@@ -29,43 +29,42 @@ namespace Code.Audio
private AsyncOperationHandle<IList<AudioClip>> _SFXHandle;
private AsyncOperationHandle<IList<AudioClip>> _enemiesHandle;
private AsyncOperationHandle<IList<AudioClip>> _dispatcherHandle;
public List<AudioClip> PeacefulMusic { get; private set; }
public List<AudioClip> ActionMusic { get; private set; }
public List<AudioClip> MenuMusic { get; private set; }
public List<AudioClip> SFXAudios { get; private set; }
public List<AudioClip> EnemiesAudios { get; private set; }
public List<AudioClip> DispatcherAudios { get; private set; }
public List<AudioClip> PeacefulMusic { get; private set; } = new();
public List<AudioClip> ActionMusic { get; private set; } = new();
public List<AudioClip> MenuMusic { get; private set; } = new();
public List<AudioClip> SFXAudios { get; private set; } = new();
public List<AudioClip> EnemiesAudios { get; private set; } = new();
public List<AudioClip> DispatcherAudios { get; private set; } = new();
public AudioFactory(AudioMixerConfig audioMixerConfig,
SoundtrackListConfig soundtrackListConfig,
SFXListConfig sfxListConfig,
EnemiesSoundListConfig enemiesSoundListConfig,
DispatcherSoundListConfig dispatcherSoundListConfig,
CharacterSoundListConfig characterSoundListConfig)
DispatcherSoundListConfig dispatcherSoundListConfig//, CharacterSoundListConfig characterSoundListConfig
)
{
_audioMixerPrefab = audioMixerConfig.audioMixerPrefab;
AudioMixer = audioMixerConfig.audioMixerAsset;
_audioSourcePrefab = audioMixerConfig.audioSourcePrefab;
_peacefulSoundtrack = soundtrackListConfig.peacefulSoundtrack;
_actionSoundtrack = soundtrackListConfig.actionSoundtrack;
_actionSoundtrack = soundtrackListConfig.menuSoundtrack;
_menuSoundtrack = soundtrackListConfig.menuSoundtrack;
_SFX = sfxListConfig.SFX;
_enemies = enemiesSoundListConfig.enemies;
_dispatcher = dispatcherSoundListConfig.dispatcher;
_character = characterSoundListConfig.character;
// _character = characterSoundListConfig.character;
}
public async UniTask<AudioMixer> CreateMixer()
{
AudioMixer audioMixer = (await Addressables.InstantiateAsync(_audioMixerPrefab).ToUniTask()).GetComponent<AudioMixer>();
Object.DontDestroyOnLoad(audioMixer);
return audioMixer;
}
// public async UniTask<AudioMixer> CreateMixer()
// {
// AudioMixer audioMixer = (await Addressables.InstantiateAsync(_audioMixerPrefab).ToUniTask()).GetComponent<AudioMixer>();
//
// return audioMixer;
// }
public async UniTaskVoid LoadAudioSourcePrefab(Action<AudioSource> callback) => callback?.Invoke(await Addressables.LoadAssetAsync<AudioSource>(_audioSourcePrefab));
public async UniTask LoadAudioSourcePrefab(Action<GameObject> callback) =>
callback?.Invoke(await Addressables.LoadAssetAsync<GameObject>(_audioSourcePrefab));
public async UniTaskVoid WarmGameplayMusic(Action callback)
{
@@ -88,8 +87,8 @@ namespace Code.Audio
public async UniTaskVoid WarmMenuMusic(Action callback)
{
_menuMusicHandle = Addressables.LoadAssetsAsync<AudioClip>(_menuSoundtrack, OnMenuTrackLoaded);
_menuMusicHandle = Addressables.LoadAssetsAsync<AudioClip>(_menuSoundtrack, OnMenuTrackLoaded, Addressables.MergeMode.None);
// foreach (var assetReference in _menuSoundtrack) MenuMusic.Add(await assetReference.LoadAssetAsync<AudioClip>());
await _menuMusicHandle.ToUniTask();
callback?.Invoke();
@@ -98,6 +97,7 @@ namespace Code.Audio
public void ReleaseMenuMusic()
{
MenuMusic.Clear();
// foreach (var assetReference in _menuSoundtrack) assetReference.ReleaseAsset();
_menuMusicHandle.Release();
}
public async UniTaskVoid WarmSFX(Action callback)