feat: Settings menu functionality

This commit is contained in:
Gerard Gascón 2024-04-16 12:38:38 +02:00
parent a8d3544de7
commit 8382700441
5 changed files with 195 additions and 0 deletions

View file

@ -1,6 +1,9 @@
using System;
using DG.Tweening;
using SatorImaging.AppWindowUtility;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.Serialization;
using UnityEngine.UI;
namespace View.UI {
@ -15,9 +18,39 @@ namespace View.UI {
[Space]
[SerializeField] private float transitionDuration = .5f;
[Space]
[SerializeField] private Toggle musicToggle;
[SerializeField] private Toggle sfxToggle;
[SerializeField] private Toggle alwaysOnTopToggle;
[Space]
[SerializeField] private AudioMixer mainMixer;
private void Awake() {
openSettingsButton.onClick.AddListener(OpenSettings);
closeSettingsButton.onClick.AddListener(CloseSettings);
musicToggle.onValueChanged.AddListener(MusicStateChange);
sfxToggle.onValueChanged.AddListener(SFXStateChange);
alwaysOnTopToggle.onValueChanged.AddListener(AlwaysOnTopStateChange);
}
private void AlwaysOnTopStateChange(bool state) {
AppWindowUtility.AlwaysOnTop = state;
}
private void SFXStateChange(bool state) {
if (state)
mainMixer.SetFloat("SFX", Mathf.Log10(1f) * 20);
else
mainMixer.SetFloat("SFX", Mathf.Log10(.0001f) * 20);
}
private void MusicStateChange(bool state) {
if (state)
mainMixer.SetFloat("Music", Mathf.Log10(1f) * 20);
else
mainMixer.SetFloat("Music", Mathf.Log10(.0001f) * 20);
}
private void OpenSettings() {