2025-12-02 22:40:17 +02:00

81 lines
1.9 KiB
C#

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<AudioSliderDragHandler>();
}
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;
}
}
}