using UnityEngine; // À¯´ÏƼ ¿£ÁøÀÇ ±âº» ±â´ÉÀ» ºÒ·¯¿Ã°Å¿¡¿ä -> UnityEngineÀ» using TMPro; // ÅØ½ºÆ®¸Þ½¬ÇÁ·Î ±â´ÉÀ» »ç¿ëÇÒ°Å¿¡¿ä -> TMPro¸¦ using System.Collections.Generic; // ¸®½ºÆ® ±â´ÉÀ» »ç¿ëÇÒ°Å¿¡¿ä -> System.Collections.GenericÀ» public class SettingResolutionUI : MonoBehaviour // Ŭ·¡½º¸¦ ¼±¾ðÇÒ°Å¿¡¿ä -> MonoBehaviour¸¦ »ó¼Ó¹Þ´Â SettingResolutionUI¸¦ { [SerializeField] private TMP_Dropdown resolutionDropdown; // º¯¼ö¸¦ ¼±¾ðÇÒ°Å¿¡¿ä -> ÇØ»óµµ ¼±Åà µå·Ó´Ù¿î UI¸¦ resolutionDropdown¿¡ private Resolution[] resolutions; // ¹è¿­À» ¼±¾ðÇÒ°Å¿¡¿ä -> »ç¿ë °¡´ÉÇÑ ÇØ»óµµ ¸ñ·ÏÀ» resolutions¿¡ private void Start() // ÇÔ¼ö¸¦ ½ÇÇàÇÒ°Å¿¡¿ä -> ½ºÅ©¸³Æ® ½ÃÀÛ ½Ã Start¸¦ { InitDropdown(); // ÇÔ¼ö¸¦ ½ÇÇàÇÒ°Å¿¡¿ä -> µå·Ó´Ù¿îÀ» ÃʱâÈ­ÇÏ´Â InitDropdownÀ» } private void InitDropdown() // ÇÔ¼ö¸¦ ¼±¾ðÇÒ°Å¿¡¿ä -> ÇØ»óµµ ¸ñ·ÏÀ» ä¿ì´Â InitDropdownÀ» { if (SettingsManager.Instance == null || resolutionDropdown == null) return; // Á¶°ÇÀÌ ¸ÂÀ¸¸é Áß´ÜÇÒ°Å¿¡¿ä -> ¸Å´ÏÀú³ª µå·Ó´Ù¿îÀÌ ¾ø´Ù¸é resolutions = SettingsManager.Instance.FilteredResolutions; // °ªÀ» °¡Á®¿Ã°Å¿¡¿ä -> ¸Å´ÏÀú¿¡¼­ ÇÊÅ͸µµÈ ÇØ»óµµ ¸ñ·ÏÀ» resolutionDropdown.ClearOptions(); // ºñ¿ï°Å¿¡¿ä -> µå·Ó´Ù¿îÀÇ ±âÁ¸ ¿É¼ÇµéÀ» List options = new List(); // ¸®½ºÆ®¸¦ »ý¼ºÇÒ°Å¿¡¿ä -> ¿É¼Ç ¹®ÀÚ¿­µéÀ» ´ãÀ» ¸®½ºÆ®¸¦ int currentResolutionIndex = 0; // º¯¼ö¸¦ ÃʱâÈ­ÇÒ°Å¿¡¿ä -> ÇöÀç ÇØ»óµµ À妽º¸¦ 0À¸·Î for (int i = 0; i < resolutions.Length; i++) // ¹Ýº¹ÇÒ°Å¿¡¿ä -> ¸ðµç ÇØ»óµµ¿¡ ´ëÇØ { string option = resolutions[i].width + " x " + resolutions[i].height; // ¹®ÀÚ¿­À» ¸¸µé°Å¿¡¿ä -> "°¡·Î x ¼¼·Î" Çü½ÄÀ¸·Î options.Add(option); // Ãß°¡ÇÒ°Å¿¡¿ä -> ¸¸µç ¹®ÀÚ¿­À» ¿É¼Ç ¸®½ºÆ®¿¡ // ÇöÀç ÇØ»óµµ¿Í ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎ if (i == SettingsManager.Instance.resolutionIndex) // Á¶°ÇÀÌ ¸ÂÀ¸¸é ½ÇÇàÇÒ°Å¿¡¿ä -> ÇöÀç ¼³Á¤µÈ À妽º¿Í °°´Ù¸é { currentResolutionIndex = i; // °ªÀ» ÀúÀåÇÒ°Å¿¡¿ä -> ÇöÀç À妽º·Î } } resolutionDropdown.AddOptions(options); // Ãß°¡ÇÒ°Å¿¡¿ä -> ¿Ï¼ºµÈ ¿É¼Ç ¸®½ºÆ®¸¦ µå·Ó´Ù¿î¿¡ resolutionDropdown.value = currentResolutionIndex; // °ªÀ» ¼³Á¤ÇÒ°Å¿¡¿ä -> ÇöÀç ¼±ÅÃµÈ ÇØ»óµµ·Î resolutionDropdown.RefreshShownValue(); // °»½ÅÇÒ°Å¿¡¿ä -> µå·Ó´Ù¿î Ç¥½Ã ³»¿ëÀ» resolutionDropdown.onValueChanged.AddListener(OnResolutionChanged); // ±¸µ¶ÇÒ°Å¿¡¿ä -> °ª º¯°æ À̺¥Æ®¸¦ } public void OnResolutionChanged(int index) // ÇÔ¼ö¸¦ ¼±¾ðÇÒ°Å¿¡¿ä -> ÇØ»óµµ º¯°æ ½Ã È£ÃâµÉ OnResolutionChanged¸¦ { if (SettingsManager.Instance != null) // Á¶°ÇÀÌ ¸ÂÀ¸¸é ½ÇÇàÇÒ°Å¿¡¿ä -> ¸Å´ÏÀú°¡ ÀÖ´Ù¸é SettingsManager.Instance.SetResolution(index); // ½ÇÇàÇÒ°Å¿¡¿ä -> ÇØ»óµµ ¼³Á¤À» Àû¿ëÇÏ´Â ÇÔ¼ö¸¦ } }