81 lines
1.9 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|