using UnityEngine; namespace OnlyScove.Scripts { public class SettingsManager : MonoBehaviour { public static SettingsManager Instance { get; private set; } [SerializeField] private GameSettings settings; public GameSettings Settings => settings; private void Awake() { if (Instance == null) { Instance = this; DontDestroyOnLoad(gameObject); if (settings == null) { // Fallback or load from Resources if needed settings = ScriptableObject.CreateInstance(); } } else { Destroy(gameObject); } } public void SetSensitivity(float value) { settings.sensitivity = value; OnSettingsChanged?.Invoke(); } public void SetInvertX(bool value) { settings.invertX = value; OnSettingsChanged?.Invoke(); } public void SetInvertY(bool value) { settings.invertY = value; OnSettingsChanged?.Invoke(); } public void SetSideBias(bool isRight) { settings.sideBiasRight = isRight; OnSettingsChanged?.Invoke(); } public void ToggleSideBias() { settings.sideBiasRight = !settings.sideBiasRight; OnSettingsChanged?.Invoke(); } public event System.Action OnSettingsChanged; } }