Skip to content
Snippets Groups Projects
Select Git revision
  • JS-based-scroll-rendering
  • master default
  • Paul_Marius_Level
  • Paul_Marius_2
  • Paul_Marius
  • Andi_Mark
  • be-UnityWebView
  • gitignoreFrameitServer
  • ZimmerBSc
  • Bugfix_StageLoading
  • stages
  • MAZIFAU_Experimental
  • tsc/coneworld
  • tsc/fact-interaction
  • marcel
  • MaZiFAU_TopSort
  • mergeHelper
  • zwischenSpeichern
  • tempAndrToMaster
  • SebBranch
  • 3.0
  • v2.1
  • v2.0
  • v1.0
24 results

SoundManager.cs

Blame
  • SoundManager.cs 1.04 KiB
    using UnityEngine;
    using UnityEngine.UI;
    
    public class SoundManager : MonoBehaviour
    {
        public static SoundManager Instance { get; private set; }
        [SerializeField] Slider volumeSlider;
        public const float defaultVolume = 0.5f;
    
    
        void Start()
        {
            if (!PlayerPrefs.HasKey("soundVolume"))
                PlayerPrefs.SetFloat("soundVolume", defaultVolume);
    
            Load();
        }
    
        public void Awake()
        {
            //singleton
            if (Instance == null)
            {
                Instance = this;
                if (gameObject.IsRoot())
                    DontDestroyOnLoad(gameObject);
            }
            else
            {
                Destroy(gameObject);
            }
        }
    
        private void OnDestroy()
        {
            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);
        }
    }