31 lines
958 B
C#
31 lines
958 B
C#
using UnityEngine;
|
|
|
|
namespace TemplateUnity.Core
|
|
{
|
|
public class AudioHandler: MonoBehaviour
|
|
{
|
|
[SerializeField] private AudioSource musicSource;
|
|
|
|
private float _sfxVolume;
|
|
|
|
private void Start()
|
|
{
|
|
DontDestroyOnLoad(gameObject.transform);
|
|
|
|
UpdateAudioVolume();
|
|
|
|
OptionHandler.Instance.OnAudiosettingChange += (_,_) => UpdateAudioVolume();
|
|
}
|
|
|
|
private void UpdateAudioVolume ()
|
|
{
|
|
float max = OptionHandler.Instance.MaxVolume;
|
|
float masterVolume = OptionHandler.Instance.MasterVolume;
|
|
float musicVolume = OptionHandler.Instance.MusicVolume;
|
|
float sfxVolume = OptionHandler.Instance.SfxVolume;
|
|
|
|
musicSource.volume = musicVolume * masterVolume / Mathf.Pow(max,2);
|
|
_sfxVolume = sfxVolume * masterVolume / Mathf.Pow(max,2);
|
|
}
|
|
}
|
|
} |