MIF_E31221357/Assets/Scripts/VolumeSetting.cs

48 lines
1.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.UI;
public class VolumeSetting : MonoBehaviour
{
[SerializeField] private AudioMixer audioMixer;
[SerializeField] private Slider musicSlider;
[SerializeField] private Slider sfxSlider;
private void Start()
{
if (PlayerPrefs.HasKey("musicVolume"))
{
LoadVolume();
}
else
{
SetMusicVolume();
SetSFXVolume();
}
}
public void SetMusicVolume()
{
float volume = musicSlider.value;
audioMixer.SetFloat("music", Mathf.Log10(volume)*20);
PlayerPrefs.SetFloat("musicVolume", volume);
}
public void SetSFXVolume()
{
float volume = sfxSlider.value;
audioMixer.SetFloat("sfx", Mathf.Log10(volume) * 20);
PlayerPrefs.SetFloat("sfxVolume", volume);
}
private void LoadVolume()
{
musicSlider.value = PlayerPrefs.GetFloat("musicVolume");
sfxSlider.value = PlayerPrefs.GetFloat("sfxVolume");
SetMusicVolume();
SetSFXVolume();
}
}