added initial logic for the volume sliders

This commit is contained in:
Timur Nizamov
2025-12-02 22:40:17 +02:00
parent 0b4854373b
commit f414e10d94
43 changed files with 365 additions and 422 deletions

View File

@@ -34,6 +34,18 @@ public class AudioSliderDragHandler : MonoBehaviour, IBeginDragHandler, IDragHan
UpdateSlider(eventData);
}
public void SetHandlePosition(float normalizedValue)
{
float halfWidth = sliderBackground.rect.width * 0.5f;
float limit = halfWidth * slideareaOffsetMultiplier;
float x = Mathf.Lerp(-limit, limit, normalizedValue);
handleRect.localPosition = new Vector3(x, handleRect.localPosition.y, 0);
CurrentValue = normalizedValue;
}
public void OnDrag(PointerEventData eventData)
{
UpdateSlider(eventData);
@@ -46,6 +58,7 @@ public class AudioSliderDragHandler : MonoBehaviour, IBeginDragHandler, IDragHan
}
private void UpdateSlider(PointerEventData eventData)
{
Debug.Log("UpDating Slider");
Vector2 localPoint;
RectTransformUtility.ScreenPointToLocalPointInRectangle(sliderBackground, eventData.position, eventData.pressEventCamera, out localPoint);

View File

@@ -0,0 +1,80 @@
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;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ebe1ab889a9bed940995d4f47bc743ef
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: