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