Files

69 lines
2.0 KiB
C#
Raw Permalink Normal View History

using SharedGame;
2022-01-10 21:50:04 +01:00
using UnityEngine;
using UnityEngine.Audio;
2023-10-04 15:28:25 +03:00
using UnityEngine.UI;
2022-01-10 21:50:04 +01:00
public class OptionsMenu : BaseMenu
{
2023-08-29 17:42:32 +03:00
[SerializeField] private InputManager _inputManager = default;
2022-01-10 21:50:04 +01:00
[SerializeField] private AudioMixer _audioMixer = default;
2023-12-04 09:55:55 +02:00
[SerializeField] private PauseMenu _pauseMenu = default;
[SerializeField] private PauseMenu _pauseTrainingMenu = default;
public PauseMenu CurrentPauseMenu { get; private set; }
private readonly Vector2Int[] _resolutions =
{ new(1920, 1080), new(1366, 768), new(1280, 720), new(1024,768), new(800,600), new(640,480) };
2022-01-10 21:50:04 +01:00
public void SetVFX(int value)
{
float parsedValue = ((float)value / 100) + 0.00001f;
2022-12-14 18:33:44 +02:00
_audioMixer.SetFloat("VFXVolume", Mathf.Log10(parsedValue) * 20);
2022-01-10 21:50:04 +01:00
}
public void SetUI(int value)
{
float parsedValue = ((float)value / 100) + 0.00001f;
2022-01-10 21:50:04 +01:00
_audioMixer.SetFloat("UIVolume", Mathf.Log10(parsedValue) * 20);
}
public void SetMusic(int value)
{
float parsedValue = ((float)value / 100) + 0.00001f;
2022-01-10 21:50:04 +01:00
_audioMixer.SetFloat("MusicVolume", Mathf.Log10(parsedValue) * 20);
}
2023-08-29 17:42:32 +03:00
2023-12-04 09:55:55 +02:00
public void SetResolution(int value)
{
Screen.SetResolution(_resolutions[value].x, _resolutions[value].y, Screen.fullScreenMode);
}
public void SetDisplay(int value)
{
2023-12-04 09:59:08 +02:00
Screen.SetResolution(Screen.currentResolution.width, Screen.currentResolution.height, (FullScreenMode)value + 1);
2023-12-04 09:55:55 +02:00
}
2023-08-29 17:42:32 +03:00
private void OnDisable()
{
2023-12-04 09:55:55 +02:00
if (PreviousSelectable != null)
PreviousSelectable.Select();
if (_inputManager != null)
_inputManager.SetPrompts(_inputManager.PreviousPrompts);
}
public void Back()
{
CurrentPauseMenu.Show();
Hide();
}
protected override void OnEnable()
{
base.OnEnable();
if (GameManager.Instance == null)
return;
2023-12-04 09:55:55 +02:00
if (GameplayManager.Instance.IsTrainingMode)
CurrentPauseMenu = _pauseTrainingMenu;
else
CurrentPauseMenu = _pauseMenu;
2023-08-29 17:42:32 +03:00
}
2022-01-10 21:50:04 +01:00
}