feat: Settings menu functionality
This commit is contained in:
parent
a8d3544de7
commit
8382700441
5 changed files with 195 additions and 0 deletions
|
@ -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() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue