60 lines
1.3 KiB
C#
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();
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|