Projext/Assets/Scripts/Systems/Settings/GameStopPanelController.cs
2026-02-13 00:23:25 +09:00

52 lines
2.3 KiB
C#

using UnityEngine; // 유니티 엔진의 기본 기능을 불러올거에요 -> UnityEngine을
using UnityEngine.SceneManagement; // 씬 관리 기능을 사용할거에요 -> UnityEngine.SceneManagement를
public class GameStopPanelController : MonoBehaviour // 클래스를 선언할거에요 -> MonoBehaviour를 상속받는 GameStopPanelController를
{
[Header("UI 요소")] // 인스펙터 창에 제목을 표시할거에요 -> UI 요소 를
[SerializeField] private GameObject stopPanel; // 변수를 선언할거에요 -> 일시정지 패널 오브젝트인 stopPanel을
private bool isPaused = false; // 변수를 초기화할거에요 -> 일시정지 상태 여부를 거짓으로
private void Update() // 함수를 실행할거에요 -> 매 프레임마다 Update를
{
// ESC 키 입력 감지
if (Input.GetKeyDown(KeyCode.Escape)) // 조건이 맞으면 실행할거에요 -> ESC 키를 눌렀다면
{
TogglePause(); // 함수를 실행할거에요 -> 일시정지 상태를 변경하는 TogglePause를
}
}
public void TogglePause() // 함수를 선언할거에요 -> 일시정지를 켜고 끄는 TogglePause를
{
isPaused = !isPaused; // 상태를 뒤집을거에요 -> 일시정지 여부를 반대로
if (stopPanel != null) stopPanel.SetActive(isPaused); // 설정을 바꿀거에요 -> 패널의 활성화 상태를 isPaused 값대로
if (isPaused) // 조건이 맞으면 실행할거에요 -> 일시정지 상태라면
{
Time.timeScale = 0f; // 값을 설정할거에요 -> 시간을 멈춤으로
}
else // 조건이 틀리면 실행할거에요 -> 게임 진행 상태라면
{
Time.timeScale = 1f; // 값을 설정할거에요 -> 시간을 정상 속도로
}
}
// "메인 메뉴로" 버튼에 연결할 함수
public void GoToMainMenu() // 함수를 선언할거에요 -> 메인 메뉴로 이동하는 GoToMainMenu를
{
Time.timeScale = 1f; // 값을 복구할거에요 -> 멈춘 시간을 정상으로 (씬 이동 전에 필수)
SceneManager.LoadScene("MainMenu"); // 실행할거에요 -> "MainMenu" 씬을 로드하는 기능을
}
// "게임 종료" 버튼에 연결할 함수
public void QuitGame() // 함수를 선언할거에요 -> 게임을 종료하는 QuitGame을
{
#if UNITY_EDITOR // 조건부 컴파일을 할거에요 -> 유니티 에디터 환경이라면
UnityEditor.EditorApplication.isPlaying = false; // 설정을 바꿀거에요 -> 플레이 모드를 끄기로
#else // 그 외 환경(빌드)이라면
Application.Quit(); // 실행할거에요 -> 어플리케이션 종료를
#endif // 조건부 컴파일을 끝낼거에요
}
}