54 lines
1.0 KiB
C#
54 lines
1.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|