В инфраструктуре начался сущий кошмар

This commit is contained in:
ThomasCharester committed 2025-11-14 22:21:51 +03:00
1 parent 346dc97fef
commit e67fea2051
51 files changed
+659 -140

No files matched your search

@@ -66,14 +66,13 @@ namespace Code.Audio
public async UniTask LoadAudioSourcePrefab(Action<GameObject> callback) =>
callback?.Invoke(await Addressables.LoadAssetAsync<GameObject>(_audioSourcePrefab));
public async UniTaskVoid WarmGameplayMusic(Action callback)
public async UniTask WarmGameplayMusic( )
{
_actionMusicHandle = Addressables.LoadAssetsAsync<AudioClip>(_actionSoundtrack, OnActionTrackLoaded);
_peacefulMusicHandle = Addressables.LoadAssetsAsync<AudioClip>(_peacefulSoundtrack, OnPeacefulTrackLoaded);
_actionMusicHandle = Addressables.LoadAssetsAsync<AudioClip>(_actionSoundtrack, OnActionTrackLoaded, Addressables.MergeMode.None);
_peacefulMusicHandle = Addressables.LoadAssetsAsync<AudioClip>(_peacefulSoundtrack, OnPeacefulTrackLoaded, Addressables.MergeMode.None);
await UniTask.WhenAll(_actionMusicHandle.ToUniTask(), _peacefulMusicHandle.ToUniTask());
callback?.Invoke();
}
public void ReleaseGameplayMusic()
@@ -85,13 +84,12 @@ namespace Code.Audio
_peacefulMusicHandle.Release();
}
public async UniTaskVoid WarmMenuMusic(Action callback)
public async UniTask WarmMenuMusic( )
{
_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();
}
public void ReleaseMenuMusic()
@@ -100,13 +98,12 @@ namespace Code.Audio
// foreach (var assetReference in _menuSoundtrack) assetReference.ReleaseAsset();
_menuMusicHandle.Release();
}
public async UniTaskVoid WarmSFX(Action callback)
public async UniTask WarmSFX( )
{
_SFXHandle = Addressables.LoadAssetsAsync<AudioClip>(_SFX, OnSFXLoaded);
_SFXHandle = Addressables.LoadAssetsAsync<AudioClip>(_SFX, OnSFXLoaded, Addressables.MergeMode.None);
await _SFXHandle.ToUniTask();
callback?.Invoke();
}
public void ReleaseSFX()
@@ -114,13 +111,12 @@ namespace Code.Audio
SFXAudios.Clear();
_SFXHandle.Release();
}
public async UniTaskVoid WarmEnemies(Action callback)
public async UniTask WarmEnemies( )
{
_enemiesHandle = Addressables.LoadAssetsAsync<AudioClip>(_enemies, OnEnemiesLoaded);
_enemiesHandle = Addressables.LoadAssetsAsync<AudioClip>(_enemies, OnEnemiesLoaded, Addressables.MergeMode.None);
await _enemiesHandle.ToUniTask();
callback?.Invoke();
}
public void ReleaseEnemies()
@@ -129,13 +125,12 @@ namespace Code.Audio
_enemiesHandle.Release();
}
public async UniTaskVoid WarmDispatcher(Action callback)
public async UniTask WarmDispatcher( )
{
_dispatcherHandle = Addressables.LoadAssetsAsync<AudioClip>(_dispatcher, OnDispatcherLoaded);
_dispatcherHandle = Addressables.LoadAssetsAsync<AudioClip>(_dispatcher, OnDispatcherLoaded, Addressables.MergeMode.None);
await _dispatcherHandle.ToUniTask();
callback?.Invoke();
}
public void ReleaseDispatcher()
@@ -40,7 +40,7 @@ namespace Code.Audio
_audioFactory = audioFactory;
}
public async UniTaskVoid Initialize(Action callback)
public async UniTask Initialize()
{
// _mixer = await _audioFactory.CreateMixer();
_mixer = _audioFactory.AudioMixer;
@@ -62,8 +62,6 @@ namespace Code.Audio
await _audioFactory.LoadAudioSourcePrefab(_audioSourcePool.Initialize);
InitializeMusicSources();
callback?.Invoke();
}
private void InitializeMusicSources()
@@ -180,6 +178,20 @@ namespace Code.Audio
callback?.Invoke();
}
public async UniTaskVoid GladlyAskToStopGameplayMusic(Action callback = null)
{
TransitToSnapshot(AudioSnapshotState.None);
await UniTask.WaitForSeconds(1f);
_actionMusicSource.Stop();
_peacefulMusicSource.Stop();
_actionMusicTokenSource.Cancel();
_peacefulMusicTokenSource.Cancel();
callback?.Invoke();
}
public async UniTaskVoid GladlyAskToStopActionMusic(Action callback = null)
{
TransitToSnapshot(AudioSnapshotState.None);
@@ -16,15 +16,15 @@ namespace Code.Audio
List<AudioClip> DispatcherAudios { get; }
AudioMixer AudioMixer { get; }
UniTask LoadAudioSourcePrefab(Action<GameObject> callback);
UniTaskVoid WarmGameplayMusic(Action callback);
UniTask WarmGameplayMusic();
void ReleaseGameplayMusic();
UniTaskVoid WarmMenuMusic(Action callback);
UniTask WarmMenuMusic();
void ReleaseMenuMusic();
UniTaskVoid WarmSFX(Action callback);
UniTask WarmSFX();
void ReleaseSFX();
UniTaskVoid WarmEnemies(Action callback);
UniTask WarmEnemies();
void ReleaseEnemies();
UniTaskVoid WarmDispatcher(Action callback);
UniTask WarmDispatcher();
void ReleaseDispatcher();
}
}
@@ -6,7 +6,7 @@ namespace Code.Audio
{
public interface IAudioService
{
UniTaskVoid Initialize(Action callback);
UniTask Initialize();
void PlayRandomGameplayMusic();
void TransitToSnapshot(AudioSnapshotState state, float time = 1f);
void PlaySFX(SFXSounds sfxId, Vector3 position);
@@ -19,5 +19,8 @@ namespace Code.Audio
UniTaskVoid GladlyAskToStopMenuMusic(Action callback = null);
UniTaskVoid GladlyAskToStopActionMusic(Action callback = null);
UniTaskVoid GladlyAskToStopPeacefulMusic(Action callback = null);
UniTaskVoid PlayRandomPeacefulMusicUntilHumanityWillBeDestroyedForTheySins();
UniTaskVoid PlayRandomActionMusicUntilHumanityWillBeDestroyedForTheySins();
UniTaskVoid GladlyAskToStopGameplayMusic(Action callback = null);
}
}