using UnityEngine; using UnityEngine.UI; using TMPro; using UnityEngine.Audio; using UnityEngine.Rendering.PostProcessing; public class ClickSettingsManager : MonoBehaviour { [Header("--- È­¸é ---")] public DropdownCustom ÇØ»óµµµå·Ó´Ù¿î; private string ¼±ÅõÈÇØ»óµµ = "1920 X 1080"; private int ¼±ÅõÈÈ­¸é¸ðµå = 0; [Header("--- ±×·¡ÇÈ ---")] public Slider ½Ã¾ß°Å¸®½½¶óÀÌ´õ; private int ¼±ÅõÈÅØ½ºÃ³ = 0; private int ¼±Åõȱ׸²ÀÚ = 0; private int ¼±ÅõȾȰ³ = 0; [Header("--- È¿°ú ---")] public ToggleCustom ¾ÈƼ¾Ù¸®¾î½ÌÅä±Û; public ToggleCustom ºí·ëÅä±Û; public ToggleCustom È­¸éÈçµé¸²Åä±Û; [Header("--- ½Ã½ºÅÛ ---")] public TMP_InputField ÇÁ·¹ÀÓÀÔ·ÂÄ­; [Header("--- ¿Àµð¿À ---")] public Slider ¸¶½ºÅͺ¼·ý½½¶óÀÌ´õ; public Slider BGMº¼·ý½½¶óÀÌ´õ; public Slider È¿°úÀ½º¼·ý½½¶óÀÌ´õ; public Slider ȯ°æÀ½º¼·ý½½¶óÀÌ´õ; public DropdownCustom Ãâ·ÂÀåÄ¡µå·Ó´Ù¿î; [Header("--- AudioMixer ---")] public AudioMixer ¿Àµð¿À¹Í¼­; [Header("--- °ÔÀÓ ---")] public Slider ¹à±â½½¶óÀÌ´õ; private string ¼±ÅõȾð¾î = "Çѱ¹¾î"; [Header("--- ¹öư ¼¿·ºÅÍ ---")] public ButtonSelector ÅØ½ºÃ³¼¿·ºÅÍ; public ButtonSelector ±×¸²ÀÚ¼¿·ºÅÍ; public ButtonSelector ¾È°³¼¿·ºÅÍ; public ButtonSelector È­¸é¸ðµå¼¿·ºÅÍ; [Header("--- Ãë¼Ò¹öư ---")] public Button Ãë¼Ò¹öư; public Sprite Ãë¼Ò¹öưȰ¼ºÀ̹ÌÁö; public Sprite Ãë¼Ò¹öưºñȰ¼ºÀ̹ÌÁö; public Color Ãë¼Ò¹öưȰ¼ºÅؽºÆ®»ö»ó = new Color(1f, 0.85f, 0.2f); // Ȳ±Ýºû public Color Ãë¼Ò¹öưºñȰ¼ºÅؽºÆ®»ö»ó = new Color(0.4f, 0.4f, 0.4f); // ȸ»ö [Header("--- Á¶ÀÛ ---")] public KeyRebinder ۸®¹ÙÀδõ; [Header("--- Post Processing ---")] public PostProcessVolume Æ÷½ºÆ®ÇÁ·Î¼¼½Ìº¼·ý; // ¸¶Áö¸·À¸·Î Àû¿ëµÈ °ª ÀúÀå¿ë private int Àû¿ëµÈÅØ½ºÃ³ = 0; private int Àû¿ëµÈ±×¸²ÀÚ = 0; private int Àû¿ëµÈ¾È°³ = 0; private int Àû¿ëµÈÈ­¸é¸ðµå = 0; private string Àû¿ëµÈÇØ»óµµ = "1920 X 1080"; private bool º¯°æµÊ = false; void Start() { Ãë¼Ò¹öưºñȰ¼ºÈ­(); } // ¦¡¦¡ Ãë¼Ò¹öư Ȱ¼º/ºñȰ¼º ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ void Ãë¼Ò¹öưºñȰ¼ºÈ­() { º¯°æµÊ = false; Ãë¼Ò¹öư.interactable = false; Ãë¼Ò¹öư.GetComponent().sprite = Ãë¼Ò¹öưºñȰ¼ºÀ̹ÌÁö; // ÅØ½ºÆ® »ö»ó º¯°æ TextMeshProUGUI ÅØ½ºÆ® = Ãë¼Ò¹öư.GetComponentInChildren(); if (ÅØ½ºÆ® != null) ÅØ½ºÆ®.color = Ãë¼Ò¹öưºñȰ¼ºÅؽºÆ®»ö»ó; } void Ãë¼Ò¹öưȰ¼ºÈ­() { if (º¯°æµÊ) return; º¯°æµÊ = true; Ãë¼Ò¹öư.interactable = true; Ãë¼Ò¹öư.GetComponent().sprite = Ãë¼Ò¹öưȰ¼ºÀ̹ÌÁö; // ÅØ½ºÆ® »ö»ó º¯°æ TextMeshProUGUI ÅØ½ºÆ® = Ãë¼Ò¹öư.GetComponentInChildren(); if (ÅØ½ºÆ® != null) ÅØ½ºÆ®.color = Ãë¼Ò¹öưȰ¼ºÅؽºÆ®»ö»ó; } // ¦¡¦¡ È­¸é ¸ðµå ¼±Åà ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ public void Àüüȭ¸é¼±ÅÃ() { ¼±ÅõÈÈ­¸é¸ðµå = 0; Ãë¼Ò¹öưȰ¼ºÈ­(); } public void â¸ðµå¼±ÅÃ() { ¼±ÅõÈÈ­¸é¸ðµå = 1; Ãë¼Ò¹öưȰ¼ºÈ­(); } public void ¹«Å׵θ®¼±ÅÃ() { ¼±ÅõÈÈ­¸é¸ðµå = 2; Ãë¼Ò¹öưȰ¼ºÈ­(); } // ¦¡¦¡ ÇØ»óµµ ¼±Åà ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ public void ÇØ»óµµ¼±ÅÃ(string ÇØ»óµµ) { ¼±ÅõÈÇØ»óµµ = ÇØ»óµµ; Ãë¼Ò¹öưȰ¼ºÈ­(); } // ¦¡¦¡ ±×·¡ÇÈ ¼±Åà ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ public void ÅØ½ºÃ³¼±ÅÃ(int À妽º) { ¼±ÅõÈÅØ½ºÃ³ = À妽º; Ãë¼Ò¹öưȰ¼ºÈ­(); } public void ±×¸²ÀÚ¼±ÅÃ(int À妽º) { ¼±Åõȱ׸²ÀÚ = À妽º; Ãë¼Ò¹öưȰ¼ºÈ­(); } public void ¾È°³¼±ÅÃ(int À妽º) { ¼±ÅõȾȰ³ = À妽º; Ãë¼Ò¹öưȰ¼ºÈ­(); } // ¦¡¦¡ Àû¿ë ¹öư ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ public void Àû¿ë() { Àû¿ëµÈÅØ½ºÃ³ = ¼±ÅõÈÅØ½ºÃ³; Àû¿ëµÈ±×¸²ÀÚ = ¼±Åõȱ׸²ÀÚ; Àû¿ëµÈ¾È°³ = ¼±ÅõȾȰ³; Àû¿ëµÈÈ­¸é¸ðµå = ¼±ÅõÈÈ­¸é¸ðµå; Àû¿ëµÈÇØ»óµµ = ¼±ÅõÈÇØ»óµµ; È­¸éÀû¿ë(); ±×·¡ÇÈÀû¿ë(); ¿Àµð¿ÀÀû¿ë(); ½Ã½ºÅÛÀû¿ë(); Ãë¼Ò¹öưºñȰ¼ºÈ­(); PlayerPrefs.Save(); Debug.Log("¼³Á¤ Àû¿ë ¿Ï·á!"); } // ¦¡¦¡ Ãë¼Ò ¹öư ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ public void Ãë¼Ò() { ¼±ÅõÈÅØ½ºÃ³ = Àû¿ëµÈÅØ½ºÃ³; ¼±Åõȱ׸²ÀÚ = Àû¿ëµÈ±×¸²ÀÚ; ¼±ÅõȾȰ³ = Àû¿ëµÈ¾È°³; ¼±ÅõÈÈ­¸é¸ðµå = Àû¿ëµÈÈ­¸é¸ðµå; ¼±ÅõÈÇØ»óµµ = Àû¿ëµÈÇØ»óµµ; if (ÅØ½ºÃ³¼¿·ºÅÍ != null) ÅØ½ºÃ³¼¿·ºÅÍ.±âº»°ª¼³Á¤(Àû¿ëµÈÅØ½ºÃ³); if (±×¸²ÀÚ¼¿·ºÅÍ != null) ±×¸²ÀÚ¼¿·ºÅÍ.±âº»°ª¼³Á¤(Àû¿ëµÈ±×¸²ÀÚ); if (¾È°³¼¿·ºÅÍ != null) ¾È°³¼¿·ºÅÍ.±âº»°ª¼³Á¤(Àû¿ëµÈ¾È°³); if (È­¸é¸ðµå¼¿·ºÅÍ != null) È­¸é¸ðµå¼¿·ºÅÍ.±âº»°ª¼³Á¤(Àû¿ëµÈÈ­¸é¸ðµå); È­¸éÀû¿ë(); ±×·¡ÇÈÀû¿ë(); Ãë¼Ò¹öưºñȰ¼ºÈ­(); Debug.Log("Ãë¼ÒµÊ!"); } // ¦¡¦¡ ±âº»°ª º¹¿ø ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ public void ±âº»°ªº¹¿ø() { ¼±ÅõÈÈ­¸é¸ðµå = 0; ¼±ÅõÈÅØ½ºÃ³ = 2; ¼±Åõȱ׸²ÀÚ = 2; ¼±ÅõȾȰ³ = 2; if (ÅØ½ºÃ³¼¿·ºÅÍ != null) ÅØ½ºÃ³¼¿·ºÅÍ.±âº»°ª¼³Á¤(2); if (±×¸²ÀÚ¼¿·ºÅÍ != null) ±×¸²ÀÚ¼¿·ºÅÍ.±âº»°ª¼³Á¤(2); if (¾È°³¼¿·ºÅÍ != null) ¾È°³¼¿·ºÅÍ.±âº»°ª¼³Á¤(2); if (È­¸é¸ðµå¼¿·ºÅÍ != null) È­¸é¸ðµå¼¿·ºÅÍ.±âº»°ª¼³Á¤(0); if (½Ã¾ß°Å¸®½½¶óÀÌ´õ != null) ½Ã¾ß°Å¸®½½¶óÀÌ´õ.value = 100; if (¸¶½ºÅͺ¼·ý½½¶óÀÌ´õ != null) ¸¶½ºÅͺ¼·ý½½¶óÀÌ´õ.value = 100; if (BGMº¼·ý½½¶óÀÌ´õ != null) BGMº¼·ý½½¶óÀÌ´õ.value = 100; if (È¿°úÀ½º¼·ý½½¶óÀÌ´õ != null) È¿°úÀ½º¼·ý½½¶óÀÌ´õ.value = 100; if (ȯ°æÀ½º¼·ý½½¶óÀÌ´õ != null) ȯ°æÀ½º¼·ý½½¶óÀÌ´õ.value = 100; if (ÇÁ·¹ÀÓÀÔ·ÂÄ­ != null) ÇÁ·¹ÀÓÀÔ·ÂÄ­.text = "60"; if (¾ÈƼ¾Ù¸®¾î½ÌÅä±Û != null) ¾ÈƼ¾Ù¸®¾î½ÌÅä±Û.±âº»°ª¼³Á¤(false); if (ºí·ëÅä±Û != null) ºí·ëÅä±Û.±âº»°ª¼³Á¤(false); if (È­¸éÈçµé¸²Åä±Û != null) È­¸éÈçµé¸²Åä±Û.±âº»°ª¼³Á¤(false); // Ű ¸®¹ÙÀεù ±âº»°ª º¹¿ø Ãß°¡! if (۸®¹ÙÀδõ != null) ۸®¹ÙÀδõ.±âº»°ªº¹¿ø(); // °ÔÀÓ ±âº»°ª if (¹à±â½½¶óÀÌ´õ != null) ¹à±â½½¶óÀÌ´õ.value = 50; ¼±ÅõȾð¾î = "Çѱ¹¾î"; È­¸éÀû¿ë(); ±×·¡ÇÈÀû¿ë(); ¿Àµð¿ÀÀû¿ë(); ½Ã½ºÅÛÀû¿ë(); °ÔÀÓÀû¿ë(); Ãë¼Ò¹öưºñȰ¼ºÈ­(); PlayerPrefs.DeleteAll(); Debug.Log("±âº»°ª º¹¿ø ¿Ï·á!"); } // ¦¡¦¡ È­¸é Àû¿ë ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ void È­¸éÀû¿ë() { string[] ºÐ¸® = ¼±ÅõÈÇØ»óµµ.Split('X'); if (ºÐ¸®.Length == 2) { int ³Êºñ = int.Parse(ºÐ¸®[0].Trim()); int ³ôÀÌ = int.Parse(ºÐ¸®[1].Trim()); Screen.SetResolution(³Êºñ, ³ôÀÌ, Screen.fullScreen); } if (¼±ÅõÈÈ­¸é¸ðµå == 0) { Screen.fullScreenMode = FullScreenMode.ExclusiveFullScreen; Screen.fullScreen = true; } else if (¼±ÅõÈÈ­¸é¸ðµå == 1) { Screen.fullScreenMode = FullScreenMode.Windowed; Screen.fullScreen = false; } else if (¼±ÅõÈÈ­¸é¸ðµå == 2) { Screen.fullScreenMode = FullScreenMode.FullScreenWindow; Screen.fullScreen = true; } } // ¦¡¦¡ ±×·¡ÇÈ Àû¿ë ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ void ±×·¡ÇÈÀû¿ë() { if (½Ã¾ß°Å¸®½½¶óÀÌ´õ != null) PlayerPrefs.SetFloat("FOV", ½Ã¾ß°Å¸®½½¶óÀÌ´õ.value); QualitySettings.globalTextureMipmapLimit = 2 - ¼±ÅõÈÅØ½ºÃ³; Debug.Log("ÅØ½ºÃ³ Àû¿ë: " + QualitySettings.globalTextureMipmapLimit); if (¼±Åõȱ׸²ÀÚ == 0) { QualitySettings.shadows = ShadowQuality.Disable; Debug.Log("±×¸²ÀÚ: ²¨Áü"); } else if (¼±Åõȱ׸²ÀÚ == 1) { QualitySettings.shadows = ShadowQuality.HardOnly; Debug.Log("±×¸²ÀÚ: º¸Åë"); } else { QualitySettings.shadows = ShadowQuality.All; Debug.Log("±×¸²ÀÚ: ³ôÀ½"); } if (¾ÈƼ¾Ù¸®¾î½ÌÅä±Û != null) PlayerPrefs.SetInt("AntiAliasing", ¾ÈƼ¾Ù¸®¾î½ÌÅä±Û.»óŰ¡Á®¿À±â() ? 1 : 0); if (ºí·ëÅä±Û != null) PlayerPrefs.SetInt("Bloom", ºí·ëÅä±Û.»óŰ¡Á®¿À±â() ? 1 : 0); if (È­¸éÈçµé¸²Åä±Û != null) PlayerPrefs.SetInt("ScreenShake", È­¸éÈçµé¸²Åä±Û.»óŰ¡Á®¿À±â() ? 1 : 0); } // ¦¡¦¡ ¿Àµð¿À Àû¿ë ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ void ¿Àµð¿ÀÀû¿ë() { if (¸¶½ºÅͺ¼·ý½½¶óÀÌ´õ != null) { float º¼·ý = ¸¶½ºÅͺ¼·ý½½¶óÀÌ´õ.value; PlayerPrefs.SetFloat("MasterVolume", º¼·ý); ¿Àµð¿À¹Í¼­.SetFloat("MasterVolume", º¼·ý > 0 ? Mathf.Log10(º¼·ý / 100f) * 20 : -80f); } if (BGMº¼·ý½½¶óÀÌ´õ != null) { float º¼·ý = BGMº¼·ý½½¶óÀÌ´õ.value; PlayerPrefs.SetFloat("BGMVolume", º¼·ý); ¿Àµð¿À¹Í¼­.SetFloat("BGMVolume", º¼·ý > 0 ? Mathf.Log10(º¼·ý / 100f) * 20 : -80f); } if (È¿°úÀ½º¼·ý½½¶óÀÌ´õ != null) { float º¼·ý = È¿°úÀ½º¼·ý½½¶óÀÌ´õ.value; PlayerPrefs.SetFloat("SFXVolume", º¼·ý); ¿Àµð¿À¹Í¼­.SetFloat("SFXVolume", º¼·ý > 0 ? Mathf.Log10(º¼·ý / 100f) * 20 : -80f); } if (ȯ°æÀ½º¼·ý½½¶óÀÌ´õ != null) { float º¼·ý = ȯ°æÀ½º¼·ý½½¶óÀÌ´õ.value; PlayerPrefs.SetFloat("ENVVolume", º¼·ý); ¿Àµð¿À¹Í¼­.SetFloat("ENVVolume", º¼·ý > 0 ? Mathf.Log10(º¼·ý / 100f) * 20 : -80f); } } // ¦¡¦¡ ½Ã½ºÅÛ Àû¿ë ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ void ½Ã½ºÅÛÀû¿ë() { if (ÇÁ·¹ÀÓÀÔ·ÂÄ­ != null && ÇÁ·¹ÀÓÀÔ·ÂÄ­.text != "") { int ÇÁ·¹ÀÓ = int.Parse(ÇÁ·¹ÀÓÀÔ·ÂÄ­.text); Application.targetFrameRate = ÇÁ·¹ÀÓ; PlayerPrefs.SetInt("TargetFPS", ÇÁ·¹ÀÓ); } } // ¦¡¦¡ °ÔÀÓ Àû¿ë ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ void °ÔÀÓÀû¿ë() { // ¹à±â Àû¿ë if (¹à±â½½¶óÀÌ´õ != null && Æ÷½ºÆ®ÇÁ·Î¼¼½Ìº¼·ý != null) { float ¹à±â°ª = ¹à±â½½¶óÀÌ´õ.value; PlayerPrefs.SetFloat("Brightness", ¹à±â°ª); ColorGrading Ä÷¯±×·¹À̵ù; if (Æ÷½ºÆ®ÇÁ·Î¼¼½Ìº¼·ý.profile.TryGetSettings(out Ä÷¯±×·¹À̵ù)) { // 0~100 ½½¶óÀÌ´õ °ªÀ» -3~3 ¹üÀ§·Î º¯È¯ Ä÷¯±×·¹À̵ù.postExposure.value = (¹à±â°ª / 100f - 0.5f) * 6f; } } // ¾ð¾î ÀúÀå PlayerPrefs.SetString("Language", ¼±ÅõȾð¾î); Debug.Log("¾ð¾î ÀúÀå: " + ¼±ÅõȾð¾î); } // ¦¡¦¡ ¾ð¾î ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ public void ¾ð¾î¼±ÅÃ(string ¾ð¾î) { ¼±ÅõȾð¾î = ¾ð¾î; Ãë¼Ò¹öưȰ¼ºÈ­(); } }