2026-01-22 18:02:20 -05:00

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);
}
}
}