using UnityEngine; public class SliderToVCA : MonoBehaviour { public enum VCATarget { Master, Ambiences, Music, SFX, UI } public VCATarget target; private AudioSliderDragHandler slider; private void Awake() { slider = GetComponent(); } private void Start() { float initialValue = GetInitialValueFromAudioManager(); slider.SetHandlePosition(initialValue); // we will add this function } private float GetInitialValueFromAudioManager() { switch (target) { case VCATarget.Master: return AudioManager.Instance.MasterVolume; case VCATarget.Ambiences: return AudioManager.Instance.AmbienceVolume; case VCATarget.Music: return AudioManager.Instance.MusicVolume; case VCATarget.SFX: return AudioManager.Instance.SFXVolume; case VCATarget.UI: return AudioManager.Instance.UIVolume; default: return 1f; } } private void Update() { // Constantly push slider value to the VCA ApplyVolume(slider.CurrentValue); Debug.Log("CurrentValue: " + slider.CurrentValue); } private void ApplyVolume(float value) { switch (target) { case VCATarget.Master: AudioManager.Instance.SetMasterVCA(value); Debug.LogError(value); break; case VCATarget.Ambiences: AudioManager.Instance.SetAmbientVCA(value); break; case VCATarget.Music: AudioManager.Instance.SetMusicVCA(value); break; case VCATarget.SFX: AudioManager.Instance.SetSFXVCA(value); break; case VCATarget.UI: AudioManager.Instance.SetUIVCA(value); break; } } }