cirnogodot/Scripts/UI/AudioSlider.cs

29 lines
713 B
C#
Raw Normal View History

2025-03-17 11:43:11 +01:00
using Godot;
namespace Cirno.Scripts.UI;
public partial class AudioSlider : HSlider
{
[Export] public StringName AudioBusName { get; private set; } = "Master";
private int _audioBusIndex;
public override void _Ready()
{
_audioBusIndex = AudioServer.GetBusIndex(AudioBusName);
2025-03-24 15:36:35 +01:00
CallDeferred(MethodName.InitializeDeferred);
}
private void InitializeDeferred()
{
2025-03-17 11:43:11 +01:00
this.Value = AudioServer.GetBusVolumeLinear(_audioBusIndex);
this.ValueChanged += MusicVolumeSliderOnValueChanged;
}
private void MusicVolumeSliderOnValueChanged(double value)
{
AudioServer.SetBusVolumeLinear(_audioBusIndex, (float)value);
}
}