using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class AudioManager : MonoBehaviour{
static Dictionary<string,AudioSource> AudioDic = new Dictionary<string,AudioSource>();
public static float SEVolume {get;set;} = 1.0f;
public static float BGMVolume {get;set;} = 1.0f;
static bool Exist = false;
void Start(){
if(Exist) {
Destroy(gameObject);
return;
}
Exist = true;
DontDestroyOnLoad(gameObject);
LoadAudios(new List{"BGM","Magic","SE"});
}
void LoadAudios(List audios){
foreach(string path in audios){
var ses = Resources.LoadAll("Audio/"+path);
foreach(AudioClip se in ses){
var ad = gameObject.AddComponent();
ad.clip = se;
AudioManager.AudioDic[se.name] = ad;
}
}
}
public static void PlayBGM(string name){
var audio = AudioDic[name];
audio.volume = BGMVolume;
audio.loop = true;
audio.spatialBlend = 0;
audio.Play();
}
public static void PlaySE(string name){
var audio = AudioDic[name];
audio.volume = SEVolume;
audio.loop = false;
audio.spatialBlend = 0;
audio.Play();
}
//audioclipを3Dにし、AudioSourceを音源となるオブジェクトに付加する
public static void Play3DSE(string name,GameObject target){
var clip = AudioDic[name].clip;
var audio = target.AddComponent();
audio.clip = clip;
audio.volume = SEVolume;
audio.loop = false;
audio.spatialBlend = 1;
audio.playOnAwake = true;
audio.maxDistance = 70; //1マス辺りの距離は5
audio.rolloffMode = AudioRolloffMode.Linear;
}
}