using System.Collections; // 컬렉션 기능을 사용할거에요 -> System.Collections를 using System.Collections.Generic; // 제네릭 컬렉션 기능을 사용할거에요 -> System.Collections.Generic을 using UnityEngine; // 유니티 엔진의 기본 기능을 불러올거에요 -> UnityEngine을 public class SettingPanelController : MonoBehaviour // 클래스를 선언할거에요 -> MonoBehaviour를 상속받는 SettingPanelController를 { [SerializeField] private GameObject settingPanel; // 변수를 선언할거에요 -> 설정 패널 오브젝트인 settingPanel을 [SerializeField] private GameObject gameStopPanel; // 변수를 선언할거에요 -> 일시정지 패널 오브젝트인 gameStopPanel을 [HideInInspector] public bool IsSettingOpen { get; private set; } // 프로퍼티를 선언할거에요 -> 설정창 열림 여부를 나타내는 IsSettingOpen을 (인스펙터에서는 숨김) [Header("설정창 선택 패널")] // 인스펙터 헤더를 작성할거에요 -> "설정창 선택 패널"이라는 제목을 [SerializeField] private GameObject normalPanel; // 변수를 선언할거에요 -> 일반 설정 패널인 normalPanel을 [SerializeField] private GameObject graphicPanel; // 변수를 선언할거에요 -> 그래픽 설정 패널인 graphicPanel을 [Header("열고 닫는 소리")] // 인스펙터 헤더를 작성할거에요 -> "열고 닫는 소리"라는 제목을 [SerializeField] private AudioSource audioSource; // 변수를 선언할거에요 -> 소리를 재생할 오디오 소스 컴포넌트를 [SerializeField] private AudioClip openSound; // 변수를 선언할거에요 -> 열릴 때 재생할 오디오 클립을 [SerializeField] private AudioClip closeSound; // 변수를 선언할거에요 -> 닫힐 때 재생할 오디오 클립을 public void AllClose() // 함수를 선언할거에요 -> 모든 하위 패널을 닫는 AllClose를 { normalPanel.SetActive(false); // 기능을 껄거에요 -> 일반 설정 패널을 graphicPanel.SetActive(false); // 기능을 껄거에요 -> 그래픽 설정 패널을 } public void NormalOpen() // 함수를 선언할거에요 -> 일반 설정 패널을 여는 NormalOpen을 { AllClose(); // 함수를 실행할거에요 -> 모든 패널을 닫는 기능을 normalPanel.SetActive(true); // 기능을 켤거에요 -> 일반 설정 패널을 if (audioSource != null && openSound != null) // 조건이 맞으면 실행할거에요 -> 오디오 소스와 열기 사운드가 있다면 { audioSource.PlayOneShot(openSound); // 소리를 재생할거에요 -> 열기 효과음을 한 번 } } public void GraphicOpen() // 함수를 선언할거에요 -> 그래픽 설정 패널을 여는 GraphicOpen을 { AllClose(); // 함수를 실행할거에요 -> 모든 패널을 닫는 기능을 graphicPanel.SetActive(true); // 기능을 켤거에요 -> 그래픽 설정 패널을 if (audioSource != null && openSound != null) // 조건이 맞으면 실행할거에요 -> 오디오 소스와 열기 사운드가 있다면 { audioSource.PlayOneShot(openSound); // 소리를 재생할거에요 -> 열기 효과음을 한 번 } } public void OpenSetting() // 함수를 선언할거에요 -> 설정창 전체를 여는 OpenSetting을 { IsSettingOpen = true; // 상태를 바꿀거에요 -> 설정창 열림 상태를 참(true)으로 if (audioSource != null && openSound != null) // 조건이 맞으면 실행할거에요 -> 오디오 소스와 열기 사운드가 있다면 { audioSource.PlayOneShot(openSound); // 소리를 재생할거에요 -> 열기 효과음을 한 번 } settingPanel.SetActive(true); // 기능을 켤거에요 -> 설정 패널 전체를 if (gameStopPanel != null) // 조건이 맞으면 실행할거에요 -> 일시정지 패널이 연결되어 있다면 { gameStopPanel.SetActive(false); // 기능을 껄거에요 -> 일시정지 패널을 (설정창이랑 겹치지 않게) } } public void CloseSetting() // 함수를 선언할거에요 -> 설정창을 닫는 CloseSetting을 { IsSettingOpen = false; // 상태를 바꿀거에요 -> 설정창 열림 상태를 거짓(false)으로 if (audioSource != null && closeSound != null) // 조건이 맞으면 실행할거에요 -> 오디오 소스와 닫기 사운드가 있다면 { audioSource.PlayOneShot(closeSound); // 소리를 재생할거에요 -> 닫기 효과음을 한 번 } settingPanel.SetActive(false); // 기능을 껄거에요 -> 설정 패널 전체를 if (gameStopPanel != null) // 조건이 맞으면 실행할거에요 -> 일시정지 패널이 연결되어 있다면 { gameStopPanel.SetActive(true); // 기능을 켤거에요 -> 일시정지 패널을 다시 보이게 } } }