using UnityEngine; using UnityEngine.UI; public class SoundEffectManager : MonoBehaviour { private static SoundEffectManager Instance; private static AudioSource audioSource; private static SoundEffectLibrary soundEffectLibrary; [SerializeField] private Slider sfxSlider; private void Awake() { if (Instance == null) { Instance = this; audioSource = GetComponent(); soundEffectLibrary = GetComponent(); DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } } public static void Play(string soundName) { AudioClip audioClip = soundEffectLibrary.GetRandomClip(soundName); if (audioClip != null) { audioSource.PlayOneShot(audioClip); } } void Start() { sfxSlider.onValueChanged.AddListener(delegate { OnValueChanged(); }); } public static void SetVolume(float volume) { audioSource.volume = volume; } public void OnValueChanged() { SetVolume(sfxSlider.value); } }