From 94bff88d4cf4bed2353133ffe5293f803f3fbd05 Mon Sep 17 00:00:00 2001 From: Nicola Sovic Date: Thu, 24 Feb 2022 18:09:46 +0100 Subject: [PATCH] Added audiosettings.txt as audio save and load, v1.0.2 --- Assets/Scripts/AudioHandler.cs | 46 ++++++++++++++++++++++++++++++--- Assets/Scripts/ButtonHandler.cs | 2 ++ Assets/Scripts/UIHandler.cs | 1 + audiosettings.txt | 2 ++ 4 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 audiosettings.txt diff --git a/Assets/Scripts/AudioHandler.cs b/Assets/Scripts/AudioHandler.cs index 12e1088..339c593 100644 --- a/Assets/Scripts/AudioHandler.cs +++ b/Assets/Scripts/AudioHandler.cs @@ -1,5 +1,7 @@ using System.Collections; using System.Collections.Generic; +using System.Globalization; +using System.IO; using UnityEngine; using UnityEngine.UI; @@ -17,6 +19,8 @@ public class AudioHandler : MonoBehaviour AudioSource cameraAudio; AudioSource playerAudio; + string filepath = "./audiosettings.txt"; + // Start is called before the first frame update void Start() { @@ -96,11 +100,47 @@ public class AudioHandler : MonoBehaviour public void changeVolumeEffects() { - playerAudio.volume = GameObject.Find("slideMusic").GetComponent().value; + playerAudio.volume = GameObject.Find("slideEffects").GetComponent().value; } - private void loadAudioSettings() + public void setSlider() { - //Need to work on + GameObject.Find("slideEffects").GetComponent().value = playerAudio.volume; + GameObject.Find("slideMusic").GetComponent().value = cameraAudio.volume; + } + + public void loadAudioSettings() + { + if (File.Exists(filepath)) + { + string[] lines = File.ReadAllLines(filepath); + cameraAudio.volume = float.Parse(lines[0].Split(':')[1]); + playerAudio.volume = float.Parse(lines[1].Split(':')[1]); + } + else + { + StreamWriter sw = File.CreateText(filepath); + sw.WriteLine("Music:0.5"); + sw.WriteLine("Effects:0.5"); + sw.Flush(); + } + } + + public void saveAudioSettings() + { + float music = GameObject.Find("slideMusic").GetComponent().value; + float effects = GameObject.Find("slideEffects").GetComponent().value; + StreamWriter sw; + if (!File.Exists(filepath)) + { + sw = File.CreateText(filepath); + } + else + { + sw = new StreamWriter(filepath); + } + sw.WriteLine("Music:"+ music); + sw.WriteLine("Effects:"+ effects); + sw.Flush(); } } diff --git a/Assets/Scripts/ButtonHandler.cs b/Assets/Scripts/ButtonHandler.cs index 254ce3c..2831617 100644 --- a/Assets/Scripts/ButtonHandler.cs +++ b/Assets/Scripts/ButtonHandler.cs @@ -42,6 +42,7 @@ namespace Assets.Scripts public void closeOptions() { + audioHandler.loadAudioSettings(); audioHandler.playButtonClick(); uihandler.closeOptions(); } @@ -109,6 +110,7 @@ namespace Assets.Scripts { audioHandler.playButtonClick(); uihandler.adaptScreen(); + audioHandler.saveAudioSettings(); } public void closeTutorial() diff --git a/Assets/Scripts/UIHandler.cs b/Assets/Scripts/UIHandler.cs index 6298ac3..b7e0f41 100644 --- a/Assets/Scripts/UIHandler.cs +++ b/Assets/Scripts/UIHandler.cs @@ -181,6 +181,7 @@ namespace Assets.Scripts public void openOptions() { options.SetActive(true); + GameObject.Find("AudioHandler").GetComponent().setSlider(); hideOtherElements(options); if (state == UIState.MAINMENU) { diff --git a/audiosettings.txt b/audiosettings.txt new file mode 100644 index 0000000..c5488d7 --- /dev/null +++ b/audiosettings.txt @@ -0,0 +1,2 @@ +Music:0.07957498 +Effects:1