using UnityEngine; using System; using System.IO; using System.Runtime.Serialization.Formatters.Binary; [Serializable] public class Settings { public Audio audio; public static string fileName; public static Settings CreateDefault() { return new Settings { audio = Audio.CreateDefault() }; } public Settings() { } [Serializable] public class Audio { public float SfxVolume { get; set; } public float MusicsVolume { get; set; } public static Audio CreateDefault() { return new Audio() { MusicsVolume = 0, SfxVolume = 0 }; } public Audio() { } } public enum AudioType { Default } public static void Save(Settings settings, string path) { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Create(path); bf.Serialize(file, settings); file.Close(); Debug.Log("Successfully saved settings to " + fileName); } public static Settings Load(string path) { if (File.Exists(path)) { Debug.Log(fileName + " does exist. Starting loading settings."); BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(path, FileMode.Open); Settings settings = (Settings)bf.Deserialize(file); file.Close(); Debug.Log("Settings successfully loaded from " + fileName + " : " + settings); return settings; } else { Debug.Log(fileName + " was not found. Creating default settings."); Settings settings = CreateDefault(); Debug.Log("Default settings created: " + settings); return settings; } } }