diff --git a/Assets/Scripts/Audio/MusicManager.cs b/Assets/Scripts/Audio/MusicManager.cs index 957f262..03022f8 100644 --- a/Assets/Scripts/Audio/MusicManager.cs +++ b/Assets/Scripts/Audio/MusicManager.cs @@ -60,6 +60,9 @@ public class MusicManager : MonoBehaviour, IBootLoader, IBase, IDataLoader audioSource.priority = musicData.priority; audioSource.clip = musicData.musicClip; + + if (audioSource.isPlaying) audioSource.Stop(); + audioSource.Play(); } } diff --git a/Assets/Scripts/State/GameManager.cs b/Assets/Scripts/State/GameManager.cs index fbe3330..9b9c7a7 100644 --- a/Assets/Scripts/State/GameManager.cs +++ b/Assets/Scripts/State/GameManager.cs @@ -11,6 +11,7 @@ public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader { private UIManager uiManager; private TilesManager tilesManager; + private MusicManager musicManager; private GameplayManager gameplayManager; public GameState GameState @@ -30,6 +31,7 @@ public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader uiManager = InterfaceManager.Instance.GetInterfaceInstance(); tilesManager = InterfaceManager.Instance.GetInterfaceInstance(); gameplayManager = InterfaceManager.Instance.GetInterfaceInstance(); + musicManager = InterfaceManager.Instance.GetInterfaceInstance(); OnGameStateChanged(GameState.InMenu); } @@ -42,13 +44,16 @@ public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader switch (gameState) { case GameState.InMenu: + musicManager.PlayMusicClip(MusicType.HomeMusic); CheckPrevGameState(); uiManager.OnInMenuScreen(); break; case GameState.InGame: + musicManager.PlayMusicClip(MusicType.GameMusic); uiManager.OnInGameScreen(); break; case GameState.GameOver: + musicManager.PlayMusicClip(MusicType.GameOverMusic); uiManager.OnGameOver(); break; }