Files
2026-06-22 16:18:34 +02:00

44 lines
1.5 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace Ashwild.Settings
{
public class ControlsSettingsSubPanel : SettingsSubPanel
{
[Header("Controls")]
[SerializeField] private Slider sensitivitySlider;
[SerializeField] private TMP_Text sensitivityLabel;
[SerializeField] private Toggle invertYToggle;
[SerializeField] private Toggle crosshairToggle;
private bool wiring;
private void Awake()
{
sensitivitySlider.onValueChanged.AddListener(OnSensitivityChanged);
invertYToggle.onValueChanged.AddListener(v => { if (!wiring) SettingsManager.Instance.SetInvertY(v); });
crosshairToggle.onValueChanged.AddListener(v => { if (!wiring) SettingsManager.Instance.SetCrosshairEnabled(v); });
}
public override void Refresh()
{
SettingsManager s = SettingsManager.Instance;
if (s == null) return;
wiring = true;
sensitivitySlider.SetValueWithoutNotify(s.Sensitivity);
if (sensitivityLabel != null) sensitivityLabel.text = s.Sensitivity.ToString("F2");
invertYToggle.SetIsOnWithoutNotify(s.InvertY);
crosshairToggle.SetIsOnWithoutNotify(s.CrosshairEnabled);
wiring = false;
}
private void OnSensitivityChanged(float v)
{
if (sensitivityLabel != null) sensitivityLabel.text = v.ToString("F2");
if (!wiring) SettingsManager.Instance.SetSensitivity(v);
}
}
}