44 lines
1.5 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|