50 lines
2.8 KiB
C#
50 lines
2.8 KiB
C#
using UnityEngine; // 유니티 엔진의 기본 기능을 불러올거에요 -> UnityEngine을
|
|
using UnityEngine.UI; // 유니티 UI 기능을 사용할거에요 -> UnityEngine.UI를
|
|
using TMPro; // 텍스트메쉬프로 기능을 사용할거에요 -> TMPro를
|
|
|
|
public class GraphicSettingUI : MonoBehaviour // 클래스를 선언할거에요 -> MonoBehaviour를 상속받는 GraphicSettingUI를
|
|
{
|
|
[Header("전체 화면 설정")] // 인스펙터 창에 제목을 표시할거에요 -> 전체 화면 설정 을
|
|
[SerializeField] private Toggle fullScreenToggle; // 변수를 선언할거에요 -> 전체 화면 토글 UI를 fullScreenToggle에
|
|
|
|
[Header("화질 설정 (드롭다운)")] // 인스펙터 창에 제목을 표시할거에요 -> 화질 설정 (드롭다운) 을
|
|
[SerializeField] private TMP_Dropdown qualityDropdown; // 변수를 선언할거에요 -> 화질 선택 드롭다운 UI를 qualityDropdown에
|
|
|
|
private void Start() // 함수를 실행할거에요 -> 스크립트 시작 시 Start를
|
|
{
|
|
// 현재 설정값 불러와서 UI에 반영
|
|
LoadCurrentSettings(); // 함수를 실행할거에요 -> 현재 설정을 UI에 표시하는 LoadCurrentSettings를
|
|
|
|
// 이벤트 리스너 등록
|
|
if (fullScreenToggle != null) // 조건이 맞으면 실행할거에요 -> 전체 화면 토글이 있다면
|
|
fullScreenToggle.onValueChanged.AddListener(OnFullScreenChanged); // 구독할거에요 -> 값 변경 시 OnFullScreenChanged 호출을
|
|
|
|
if (qualityDropdown != null) // 조건이 맞으면 실행할거에요 -> 화질 드롭다운이 있다면
|
|
qualityDropdown.onValueChanged.AddListener(OnQualityChanged); // 구독할거에요 -> 값 변경 시 OnQualityChanged 호출을
|
|
}
|
|
|
|
private void LoadCurrentSettings() // 함수를 선언할거에요 -> 현재 설정값을 UI에 반영하는 LoadCurrentSettings를
|
|
{
|
|
if (SettingsManager.Instance == null) return; // 조건이 맞으면 중단할거에요 -> 설정 매니저가 없다면
|
|
|
|
// 전체 화면 토글 상태 동기화
|
|
if (fullScreenToggle != null) // 조건이 맞으면 실행할거에요 -> 토글이 있다면
|
|
fullScreenToggle.isOn = SettingsManager.Instance.isFullScreen; // 값을 설정할거에요 -> 매니저의 전체 화면 설정값으로
|
|
|
|
// 화질 드롭다운 값 동기화
|
|
if (qualityDropdown != null) // 조건이 맞으면 실행할거에요 -> 드롭다운이 있다면
|
|
qualityDropdown.value = SettingsManager.Instance.qualityIndex; // 값을 설정할거에요 -> 매니저의 화질 인덱스로
|
|
}
|
|
|
|
public void OnFullScreenChanged(bool isFull) // 함수를 선언할거에요 -> 전체 화면 변경 시 호출될 OnFullScreenChanged를
|
|
{
|
|
if (SettingsManager.Instance != null) // 조건이 맞으면 실행할거에요 -> 매니저가 있다면
|
|
SettingsManager.Instance.SetFullScreen(isFull); // 실행할거에요 -> 전체 화면 설정을 적용하는 함수를
|
|
}
|
|
|
|
public void OnQualityChanged(int index) // 함수를 선언할거에요 -> 화질 변경 시 호출될 OnQualityChanged를
|
|
{
|
|
if (SettingsManager.Instance != null) // 조건이 맞으면 실행할거에요 -> 매니저가 있다면
|
|
SettingsManager.Instance.SetQuality(index); // 실행할거에요 -> 화질 설정을 적용하는 함수를
|
|
}
|
|
} |