From 766cdff5ffa72b65d7f106658d1603f47739b2ba Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Fri, 27 Oct 2023 11:05:14 +0800 Subject: + init --- GameCode/Optionshandler.cs | 187 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 GameCode/Optionshandler.cs (limited to 'GameCode/Optionshandler.cs') diff --git a/GameCode/Optionshandler.cs b/GameCode/Optionshandler.cs new file mode 100644 index 0000000..21130c1 --- /dev/null +++ b/GameCode/Optionshandler.cs @@ -0,0 +1,187 @@ +using SoundImplementation; +using UnityEngine; + +public class Optionshandler : MonoBehaviour +{ + public enum FullScreenOption + { + FullScreen, + WindowedFullScreen, + MaximizedWindow, + Windowed + } + + public static Resolution resolution; + + public static float vol_Master; + + public static float vol_Sfx; + + public static float vol_Music; + + public static FullScreenOption fullScreen; + + public static bool characterPattrens; + + public static bool mapPatterns; + + public static bool vSync; + + public static bool leftStickAim; + + public static bool lockMouse; + + public static bool showCardStatNumbers; + + public static bool lockStick; + + public static Optionshandler instance; + + private void Start() + { + instance = this; + LoadOptions(); + ApplyOptions(); + } + + private void LoadOptions() + { + vol_Master = PlayerPrefs.GetFloat("Vol_Master", 1f); + vol_Sfx = PlayerPrefs.GetFloat("vol_Sfx", 1f); + vol_Music = PlayerPrefs.GetFloat("vol_Music", 1f); + resolution.width = PlayerPrefs.GetInt("res_X", 0); + resolution.height = PlayerPrefs.GetInt("res_Y", 0); + fullScreen = (FullScreenOption)PlayerPrefs.GetInt("fullScreen", 1); + characterPattrens = GetBool(PlayerPrefs.GetInt("characterPattrens", 1)); + mapPatterns = GetBool(PlayerPrefs.GetInt("mapPatterns", 1)); + leftStickAim = GetBool(PlayerPrefs.GetInt("leftStickAim", 1)); + vSync = GetBool(PlayerPrefs.GetInt("vSync", 0)); + lockStick = GetBool(PlayerPrefs.GetInt("lockStick", 0)); + lockMouse = GetBool(PlayerPrefs.GetInt("lockMouse", 0)); + showCardStatNumbers = GetBool(PlayerPrefs.GetInt("showCardStatNumbers", 0)); + if (resolution.height == 0 || resolution.width == 0) + { + resolution = Screen.currentResolution; + SaveOptions(); + } + else + { + ApplyOptions(); + } + } + + private void SaveOptions() + { + PlayerPrefs.SetFloat("Vol_Master", vol_Master); + PlayerPrefs.SetFloat("vol_Sfx", vol_Sfx); + PlayerPrefs.SetFloat("vol_Music", vol_Music); + PlayerPrefs.SetInt("res_X", resolution.width); + PlayerPrefs.SetInt("res_Y", resolution.height); + PlayerPrefs.SetInt("fullScreen", (int)fullScreen); + PlayerPrefs.SetInt("characterPattrens", GetInt(characterPattrens)); + PlayerPrefs.SetInt("mapPatterns", GetInt(mapPatterns)); + PlayerPrefs.SetInt("leftStickAim", GetInt(leftStickAim)); + PlayerPrefs.SetInt("vSync", GetInt(vSync)); + PlayerPrefs.SetInt("lockMouse", GetInt(lockMouse)); + PlayerPrefs.SetInt("lockStick", GetInt(lockStick)); + PlayerPrefs.SetInt("showCardStatNumbers", GetInt(showCardStatNumbers)); + ApplyOptions(); + } + + private void ApplyOptions() + { + Screen.SetResolution(resolution.width, resolution.height, (FullScreenMode)fullScreen); + QualitySettings.vSyncCount = (vSync ? 1 : 0); + SoundVolumeManager.Instance.SetAudioMixerVolumes(vol_Master, vol_Music, vol_Sfx); + } + + private bool GetBool(int value) + { + if (value != 1) + { + return false; + } + return true; + } + + private int GetInt(bool value) + { + if (!value) + { + return 0; + } + return 1; + } + + public void SetResolution(Resolution resolutionToSet) + { + resolution = resolutionToSet; + SaveOptions(); + } + + public void SetVSync(bool vSyncToSet) + { + vSync = vSyncToSet; + SaveOptions(); + } + + public void SetVolMaster(float vol_Master_ToSet) + { + vol_Master = vol_Master_ToSet; + SaveOptions(); + } + + public void SetVolSFX(float vol_SFX_ToSet) + { + vol_Sfx = vol_SFX_ToSet; + SaveOptions(); + } + + public void SetVolMusic(float vol_Music_ToSet) + { + vol_Music = vol_Music_ToSet; + SaveOptions(); + } + + public void SetCharacterPatterns(bool characterPatternsToSet) + { + characterPattrens = characterPatternsToSet; + SaveOptions(); + } + + public void SetMapPatterns(bool mapPatternsToSet) + { + mapPatterns = mapPatternsToSet; + SaveOptions(); + } + + public void SetLeftStickAim(bool leftStickAimToSet) + { + leftStickAim = leftStickAimToSet; + SaveOptions(); + } + + public void lockMouseAim(bool setLockMouse) + { + lockMouse = setLockMouse; + SaveOptions(); + } + + public void lockStickAim(bool setLockStick) + { + lockStick = setLockStick; + SaveOptions(); + } + + public void SetShowCardStatNumbers(bool showCardStatNumbersToSet) + { + showCardStatNumbers = showCardStatNumbersToSet; + SaveOptions(); + } + + public void SetFullScreen(FullScreenOption fullscreenToSet) + { + fullScreen = fullscreenToSet; + SaveOptions(); + } +} -- cgit v1.1-26-g67d0