using UnityEngine; using System.Collections; using UnityEngine.UI; using TMPro; namespace SlimUI.ModernMenu { public class SlimUISettings : MonoBehaviour { public enum Platform { Desktop, Mobile }; public Platform platform; // toggle buttons [Header("MOBILE SETTINGS")] public GameObject mobileSFXtext; public GameObject mobileMusictext; public GameObject mobileShadowofftextLINE; public GameObject mobileShadowlowtextLINE; public GameObject mobileShadowhightextLINE; [Header("VIDEO SETTINGS")] public GameObject fullscreentext; public GameObject ambientocclusiontext; public GameObject shadowofftextLINE; public GameObject shadowlowtextLINE; public GameObject shadowhightextLINE; public GameObject aaofftextLINE; public GameObject aa2xtextLINE; public GameObject aa4xtextLINE; public GameObject aa8xtextLINE; public GameObject vsynctext; public GameObject motionblurtext; public GameObject texturelowtextLINE; public GameObject texturemedtextLINE; public GameObject texturehightextLINE; public GameObject cameraeffectstext; [Header("GAME SETTINGS")] public GameObject showhudtext; public GameObject tooltipstext; public GameObject difficultynormaltext; public GameObject difficultynormaltextLINE; public GameObject difficultyhardcoretext; public GameObject difficultyhardcoretextLINE; [Header("CONTROLS SETTINGS")] public GameObject invertmousetext; // sliders public GameObject musicSlider; public GameObject sensitivityXSlider; public GameObject sensitivityYSlider; public GameObject mouseSmoothSlider; private float sliderValue = 0.0f; private float sliderValueXSensitivity = 0.0f; private float sliderValueYSensitivity = 0.0f; private float sliderValueSmoothing = 0.0f; public void Start() { // check difficulty if (PlayerPrefs.GetInt("NormalDifficulty") == 1) { difficultynormaltextLINE.gameObject.SetActive(true); difficultyhardcoretextLINE.gameObject.SetActive(false); } else { difficultyhardcoretextLINE.gameObject.SetActive(true); difficultynormaltextLINE.gameObject.SetActive(false); } // check slider values musicSlider.GetComponent().value = PlayerPrefs.GetFloat("MusicVolume"); sensitivityXSlider.GetComponent().value = PlayerPrefs.GetFloat("XSensitivity"); sensitivityYSlider.GetComponent().value = PlayerPrefs.GetFloat("YSensitivity"); mouseSmoothSlider.GetComponent().value = PlayerPrefs.GetFloat("MouseSmoothing"); // check full screen if (Screen.fullScreen == true) { fullscreentext.GetComponent().text = "on"; } else if (Screen.fullScreen == false) { fullscreentext.GetComponent().text = "off"; } // check hud value if (PlayerPrefs.GetInt("ShowHUD") == 0) { showhudtext.GetComponent().text = "off"; } else { showhudtext.GetComponent().text = "on"; } // check tool tip value if (PlayerPrefs.GetInt("ToolTips") == 0) { tooltipstext.GetComponent().text = "off"; } else { tooltipstext.GetComponent().text = "on"; } // check shadow distance/enabled if (platform == Platform.Desktop) { if (PlayerPrefs.GetInt("Shadows") == 0) { QualitySettings.shadowCascades = 0; QualitySettings.shadowDistance = 0; shadowofftextLINE.gameObject.SetActive(true); shadowlowtextLINE.gameObject.SetActive(false); shadowhightextLINE.gameObject.SetActive(false); } else if (PlayerPrefs.GetInt("Shadows") == 1) { QualitySettings.shadowCascades = 2; QualitySettings.shadowDistance = 75; shadowofftextLINE.gameObject.SetActive(false); shadowlowtextLINE.gameObject.SetActive(true); shadowhightextLINE.gameObject.SetActive(false); } else if (PlayerPrefs.GetInt("Shadows") == 2) { QualitySettings.shadowCascades = 4; QualitySettings.shadowDistance = 500; shadowofftextLINE.gameObject.SetActive(false); shadowlowtextLINE.gameObject.SetActive(false); shadowhightextLINE.gameObject.SetActive(true); } } else if (platform == Platform.Mobile) { if (PlayerPrefs.GetInt("MobileShadows") == 0) { QualitySettings.shadowCascades = 0; QualitySettings.shadowDistance = 0; mobileShadowofftextLINE.gameObject.SetActive(true); mobileShadowlowtextLINE.gameObject.SetActive(false); mobileShadowhightextLINE.gameObject.SetActive(false); } else if (PlayerPrefs.GetInt("MobileShadows") == 1) { QualitySettings.shadowCascades = 2; QualitySettings.shadowDistance = 75; mobileShadowofftextLINE.gameObject.SetActive(false); mobileShadowlowtextLINE.gameObject.SetActive(true); mobileShadowhightextLINE.gameObject.SetActive(false); } else if (PlayerPrefs.GetInt("MobileShadows") == 2) { QualitySettings.shadowCascades = 4; QualitySettings.shadowDistance = 100; mobileShadowofftextLINE.gameObject.SetActive(false); mobileShadowlowtextLINE.gameObject.SetActive(false); mobileShadowhightextLINE.gameObject.SetActive(true); } } // check vsync if (QualitySettings.vSyncCount == 0) { vsynctext.GetComponent().text = "off"; } else if (QualitySettings.vSyncCount == 1) { vsynctext.GetComponent().text = "on"; } // check mouse inverse if (PlayerPrefs.GetInt("Inverted") == 0) { invertmousetext.GetComponent().text = "off"; } else if (PlayerPrefs.GetInt("Inverted") == 1) { invertmousetext.GetComponent().text = "on"; } // check motion blur if (PlayerPrefs.GetInt("MotionBlur") == 0) { motionblurtext.GetComponent().text = "off"; } else if (PlayerPrefs.GetInt("MotionBlur") == 1) { motionblurtext.GetComponent().text = "on"; } // check ambient occlusion if (PlayerPrefs.GetInt("AmbientOcclusion") == 0) { ambientocclusiontext.GetComponent().text = "off"; } else if (PlayerPrefs.GetInt("AmbientOcclusion") == 1) { ambientocclusiontext.GetComponent().text = "on"; } // check texture quality if (PlayerPrefs.GetInt("Textures") == 0) { QualitySettings.globalTextureMipmapLimit = 2; texturelowtextLINE.gameObject.SetActive(true); texturemedtextLINE.gameObject.SetActive(false); texturehightextLINE.gameObject.SetActive(false); } else if (PlayerPrefs.GetInt("Textures") == 1) { QualitySettings.globalTextureMipmapLimit = 1; texturelowtextLINE.gameObject.SetActive(false); texturemedtextLINE.gameObject.SetActive(true); texturehightextLINE.gameObject.SetActive(false); } else if (PlayerPrefs.GetInt("Textures") == 2) { QualitySettings.globalTextureMipmapLimit = 0; texturelowtextLINE.gameObject.SetActive(false); texturemedtextLINE.gameObject.SetActive(false); texturehightextLINE.gameObject.SetActive(true); } } public void Update() { //sliderValue = musicSlider.GetComponent().value; sliderValueXSensitivity = sensitivityXSlider.GetComponent().value; sliderValueYSensitivity = sensitivityYSlider.GetComponent().value; sliderValueSmoothing = mouseSmoothSlider.GetComponent().value; } public void FullScreen() { Screen.fullScreen = !Screen.fullScreen; if (Screen.fullScreen == true) { fullscreentext.GetComponent().text = "on"; } else if (Screen.fullScreen == false) { fullscreentext.GetComponent().text = "off"; } } public void MusicSlider() { //PlayerPrefs.SetFloat("MusicVolume", sliderValue); PlayerPrefs.SetFloat("MusicVolume", musicSlider.GetComponent().value); } public void SensitivityXSlider() { PlayerPrefs.SetFloat("XSensitivity", sliderValueXSensitivity); } public void SensitivityYSlider() { PlayerPrefs.SetFloat("YSensitivity", sliderValueYSensitivity); } public void SensitivitySmoothing() { PlayerPrefs.SetFloat("MouseSmoothing", sliderValueSmoothing); Debug.Log(PlayerPrefs.GetFloat("MouseSmoothing")); } // the playerprefs variable that is checked to enable hud while in game public void ShowHUD() { if (PlayerPrefs.GetInt("ShowHUD") == 0) { PlayerPrefs.SetInt("ShowHUD", 1); showhudtext.GetComponent().text = "on"; } else if (PlayerPrefs.GetInt("ShowHUD") == 1) { PlayerPrefs.SetInt("ShowHUD", 0); showhudtext.GetComponent().text = "off"; } } // the playerprefs variable that is checked to enable mobile sfx while in game public void MobileSFXMute() { if (PlayerPrefs.GetInt("Mobile_MuteSfx") == 0) { PlayerPrefs.SetInt("Mobile_MuteSfx", 1); mobileSFXtext.GetComponent().text = "on"; } else if (PlayerPrefs.GetInt("Mobile_MuteSfx") == 1) { PlayerPrefs.SetInt("Mobile_MuteSfx", 0); mobileSFXtext.GetComponent().text = "off"; } } public void MobileMusicMute() { if (PlayerPrefs.GetInt("Mobile_MuteMusic") == 0) { PlayerPrefs.SetInt("Mobile_MuteMusic", 1); mobileMusictext.GetComponent().text = "on"; } else if (PlayerPrefs.GetInt("Mobile_MuteMusic") == 1) { PlayerPrefs.SetInt("Mobile_MuteMusic", 0); mobileMusictext.GetComponent().text = "off"; } } // show tool tips like: 'How to Play' control pop ups public void ToolTips() { if (PlayerPrefs.GetInt("ToolTips") == 0) { PlayerPrefs.SetInt("ToolTips", 1); tooltipstext.GetComponent().text = "on"; } else if (PlayerPrefs.GetInt("ToolTips") == 1) { PlayerPrefs.SetInt("ToolTips", 0); tooltipstext.GetComponent().text = "off"; } } public void NormalDifficulty() { difficultyhardcoretextLINE.gameObject.SetActive(false); difficultynormaltextLINE.gameObject.SetActive(true); PlayerPrefs.SetInt("NormalDifficulty", 1); PlayerPrefs.SetInt("HardCoreDifficulty", 0); } public void HardcoreDifficulty() { difficultyhardcoretextLINE.gameObject.SetActive(true); difficultynormaltextLINE.gameObject.SetActive(false); PlayerPrefs.SetInt("NormalDifficulty", 0); PlayerPrefs.SetInt("HardCoreDifficulty", 1); } public void ShadowsOff() { PlayerPrefs.SetInt("Shadows", 0); QualitySettings.shadowCascades = 0; QualitySettings.shadowDistance = 0; shadowofftextLINE.gameObject.SetActive(true); shadowlowtextLINE.gameObject.SetActive(false); shadowhightextLINE.gameObject.SetActive(false); } public void ShadowsLow() { PlayerPrefs.SetInt("Shadows", 1); QualitySettings.shadowCascades = 2; QualitySettings.shadowDistance = 75; shadowofftextLINE.gameObject.SetActive(false); shadowlowtextLINE.gameObject.SetActive(true); shadowhightextLINE.gameObject.SetActive(false); } public void ShadowsHigh() { PlayerPrefs.SetInt("Shadows", 2); QualitySettings.shadowCascades = 4; QualitySettings.shadowDistance = 500; shadowofftextLINE.gameObject.SetActive(false); shadowlowtextLINE.gameObject.SetActive(false); shadowhightextLINE.gameObject.SetActive(true); } public void MobileShadowsOff() { PlayerPrefs.SetInt("MobileShadows", 0); QualitySettings.shadowCascades = 0; QualitySettings.shadowDistance = 0; mobileShadowofftextLINE.gameObject.SetActive(true); mobileShadowlowtextLINE.gameObject.SetActive(false); mobileShadowhightextLINE.gameObject.SetActive(false); } public void MobileShadowsLow() { PlayerPrefs.SetInt("MobileShadows", 1); QualitySettings.shadowCascades = 2; QualitySettings.shadowDistance = 75; mobileShadowofftextLINE.gameObject.SetActive(false); mobileShadowlowtextLINE.gameObject.SetActive(true); mobileShadowhightextLINE.gameObject.SetActive(false); } public void MobileShadowsHigh() { PlayerPrefs.SetInt("MobileShadows", 2); QualitySettings.shadowCascades = 4; QualitySettings.shadowDistance = 500; mobileShadowofftextLINE.gameObject.SetActive(false); mobileShadowlowtextLINE.gameObject.SetActive(false); mobileShadowhightextLINE.gameObject.SetActive(true); } public void vsync() { if (QualitySettings.vSyncCount == 0) { QualitySettings.vSyncCount = 1; vsynctext.GetComponent().text = "on"; } else if (QualitySettings.vSyncCount == 1) { QualitySettings.vSyncCount = 0; vsynctext.GetComponent().text = "off"; } } public void InvertMouse() { if (PlayerPrefs.GetInt("Inverted") == 0) { PlayerPrefs.SetInt("Inverted", 1); invertmousetext.GetComponent().text = "on"; } else if (PlayerPrefs.GetInt("Inverted") == 1) { PlayerPrefs.SetInt("Inverted", 0); invertmousetext.GetComponent().text = "off"; } } public void MotionBlur() { if (PlayerPrefs.GetInt("MotionBlur") == 0) { PlayerPrefs.SetInt("MotionBlur", 1); motionblurtext.GetComponent().text = "on"; } else if (PlayerPrefs.GetInt("MotionBlur") == 1) { PlayerPrefs.SetInt("MotionBlur", 0); motionblurtext.GetComponent().text = "off"; } } public void AmbientOcclusion() { if (PlayerPrefs.GetInt("AmbientOcclusion") == 0) { PlayerPrefs.SetInt("AmbientOcclusion", 1); ambientocclusiontext.GetComponent().text = "on"; } else if (PlayerPrefs.GetInt("AmbientOcclusion") == 1) { PlayerPrefs.SetInt("AmbientOcclusion", 0); ambientocclusiontext.GetComponent().text = "off"; } } public void CameraEffects() { if (PlayerPrefs.GetInt("CameraEffects") == 0) { PlayerPrefs.SetInt("CameraEffects", 1); cameraeffectstext.GetComponent().text = "on"; } else if (PlayerPrefs.GetInt("CameraEffects") == 1) { PlayerPrefs.SetInt("CameraEffects", 0); cameraeffectstext.GetComponent().text = "off"; } } public void TexturesLow() { PlayerPrefs.SetInt("Textures", 0); QualitySettings.globalTextureMipmapLimit = 2; texturelowtextLINE.gameObject.SetActive(true); texturemedtextLINE.gameObject.SetActive(false); texturehightextLINE.gameObject.SetActive(false); } public void TexturesMed() { PlayerPrefs.SetInt("Textures", 1); QualitySettings.globalTextureMipmapLimit = 1; texturelowtextLINE.gameObject.SetActive(false); texturemedtextLINE.gameObject.SetActive(true); texturehightextLINE.gameObject.SetActive(false); } public void TexturesHigh() { PlayerPrefs.SetInt("Textures", 2); QualitySettings.globalTextureMipmapLimit = 0; texturelowtextLINE.gameObject.SetActive(false); texturemedtextLINE.gameObject.SetActive(false); texturehightextLINE.gameObject.SetActive(true); } } }