Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.25 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEngine.Audio;
  4. using UnityEngine.UI;
  5.  
  6. public class AudioManager : MonoBehaviour
  7. {
  8.     public static AudioManager instance;
  9.     public AudioMixer mixer;
  10.  
  11.     public AudioSetting[] audioSettings;
  12.     private enum AudioGroups {Music, SFX};
  13.  
  14.     void Awake()
  15.     {
  16.         instance = GetComponent<AudioManager>();
  17.     }
  18.  
  19.     void Start()
  20.     {
  21.         for (int i = 0; i < audioSettings.Length; i++)
  22.         {
  23.             audioSettings[i].Initialize();
  24.         }
  25.     }
  26.  
  27.         public void SetMusicVolume(float value)
  28.     {
  29.         audioSettings[(int)AudioGroups.Music].SetExposedParam(value);
  30.     }
  31.  
  32.     public void SetSFXVolume(float value)
  33.     {
  34.         audioSettings[(int)AudioGroups.SFX].SetExposedParam(value);
  35.     }
  36.    
  37. }
  38.  
  39. [System.Serializable]
  40. public class AudioSetting
  41. {
  42.     public Slider slider;
  43.     public GameObject redX;
  44.     public string exposedParam;
  45.  
  46.     public void Initialize()
  47.     {
  48.         slider.value = PlayerPrefs.GetFloat(exposedParam);
  49.     }
  50.     public void SetExposedParam(float value)
  51.     {
  52.         redX.SetActive(value <= slider.minValue);
  53.         AudioManager.instance.mixer.SetFloat(exposedParam, value);
  54.         PlayerPrefs.SetFloat(exposedParam, value);
  55.     }
  56.  
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement