Музыка есть
This commit is contained in:
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)
|
||||
|
||||
Reference in new issue
Block a user