Skip to content
Snippets Groups Projects
SoundManager.cs 1.24 KiB
Newer Older
  • Learn to ignore specific revisions
  • using System.Collections;
    using System.Collections.Generic;
    using UnityEngine.UI;
    using UnityEngine;
    
    public class SoundManager : MonoBehaviour
    {
        public static SoundManager Instance;
        [SerializeField] Slider volumeSlider;
        public const float defaultVolume = 0.5f;
        // Start is called before the first frame update
        void Start()
        {
    
            if (!PlayerPrefs.HasKey("soundVolume"))
            {
    
                PlayerPrefs.SetFloat("soundVolume", defaultVolume);
                Load();
    
            if (Instance == null)
    
                if (gameObject.IsRoot())
                    DontDestroyOnLoad(gameObject);
            }
            else
    
        private void OnDestroy()
        {
            if (!gameObject.IsRoot())
                Instance = null;
        }
    
    
        public void ChangeVolume()
        {
            AudioListener.volume = volumeSlider.value;
            Save();
        }
    
        private void Load()
        {
            volumeSlider.value = PlayerPrefs.GetFloat("soundVolume");
        }
    
        private void Save()
        {
            PlayerPrefs.SetFloat("soundVolume", volumeSlider.value);
        }
    }