Projext/Assets/Scripts/System_Scripts/SettingPanelController.cs

79 lines
4.9 KiB
C#
Raw Permalink Normal View History

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