using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Audio; using UnityEngine.Events; public class Settings : MonoBehaviour { public delegate void OnSensitivityChangedDelegate(float sensitivity); public delegate void OnVolumeChangedDelegate(float sensitivity); public static event OnSensitivityChangedDelegate onSensitivityChanged; public static event OnVolumeChangedDelegate onVolumeChanged; [SerializeField] private AudioMixer audioMixer; public static Settings instance; void Awake() { if (instance == null) { instance = this; } DontDestroyOnLoad(this); } void Start() { if (!PlayerPrefs.HasKey("Sensitivity")) { PlayerPrefs.SetFloat("Sensitivity", 1.0f); } if (!PlayerPrefs.HasKey("Volume")) { PlayerPrefs.SetFloat("Volume", 0.5f); } } public void SetSensitivity(float sensitivity) { PlayerPrefs.SetFloat("Sensitivity", sensitivity); onSensitivityChanged?.Invoke(sensitivity); } public void SetVolume(float volume) { PlayerPrefs.SetFloat("Volume", volume); audioMixer.SetFloat("MasterVolume", Mathf.Log10(volume) * 60); onVolumeChanged?.Invoke(volume); } }