using DG.Tweening; using Obvious.Soap; using UnityEngine; using UnityEngine.Audio; public class GameSettingsEventsHandlers : MonoBehaviour { [SerializeField] private AudioMixer audioMixer; [SerializeField] private BoolVariable pleaseWait_IsOpen; private Tween setQualityLevelTween; public void ChangeSettingLevel(int level) { if (setQualityLevelTween != null && setQualityLevelTween.IsActive()) { setQualityLevelTween.Kill(); } pleaseWait_IsOpen.Value = true; setQualityLevelTween = DOVirtual.DelayedCall(1f, delegate { QualitySettings.SetQualityLevel(level, applyExpensiveChanges: true); pleaseWait_IsOpen.Value = false; }); } public void ChangeAudioUnderwater(float volume) { audioMixer?.SetFloat("Underwater", Mathf.Log10(volume) * 20f); } public void ChangeLODBias(int level) { switch (level) { case 0: QualitySettings.lodBias = 0.4f; break; case 1: QualitySettings.lodBias = 0.6f; break; case 2: QualitySettings.lodBias = 0.8f; break; case 3: QualitySettings.lodBias = 1f; break; } } }