Files
Scampz/Assets/Scripts/Audio/BGMManager.cs

60 lines
1.3 KiB
C#

using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace Scampz.GameJam.Assets.Scripts
{
public class BGMManager : MonoBehaviour
{
[SerializeField]
private AudioSource audioSource;
[SerializeField]
private AudioClip[] backgroundMusic;
private static BGMManager _instance;
public static BGMManager Instance
{
get
{
if (!_instance)
{
_instance = new GameObject().AddComponent<BGMManager>();
_instance.name = _instance.GetType().ToString();
DontDestroyOnLoad(_instance.gameObject);
}
return _instance;
}
}
public void PlaySong()
{
audioSource.Stop();
var sceneCount = SceneManager.sceneCount;
var scenes = new List<Scene>();
for (var i = 0; i < sceneCount; ++i)
scenes.Add(SceneManager.GetSceneAt(i));
AudioClip audioClipToPlay = null;
if (scenes.Any(x => x.name.Contains("Temple")))
audioClipToPlay = backgroundMusic[0];
if (scenes.Any(x => x.name.Contains("Sanctum")))
audioClipToPlay = backgroundMusic[1];
if (audioClipToPlay != audioSource.clip)
{
audioSource.clip = audioClipToPlay;
audioSource.Play();
}
}
}
}