48 lines
1.7 KiB
C#
48 lines
1.7 KiB
C#
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
using TMPro;
|
|
|
|
// 게임 오버 상태를 표현하고, 게임 점수와 UI를 관리하는 게임 매니저
|
|
// 씬에는 단 하나의 게임 매니저만 존재할 수 있다.
|
|
public class GameManager : MonoBehaviour {
|
|
public static GameManager instance; // 싱글톤을 할당할 전역 변수
|
|
|
|
public bool isGameover = false; // 게임 오버 상태
|
|
public TextMeshProUGUI scoreText; // 점수를 출력할 UI 텍스트
|
|
public GameObject gameoverUI; // 게임 오버시 활성화 할 UI 게임 오브젝트
|
|
|
|
private int score = 0; // 게임 점수
|
|
|
|
// 게임 시작과 동시에 싱글톤을 구성
|
|
void Awake() {
|
|
// 싱글톤 변수 instance가 비어있는가?
|
|
if (instance == null)
|
|
{
|
|
// instance가 비어있다면(null) 그곳에 자기 자신을 할당
|
|
instance = this;
|
|
}
|
|
else
|
|
{
|
|
// instance에 이미 다른 GameManager 오브젝트가 할당되어 있는 경우
|
|
|
|
// 씬에 두개 이상의 GameManager 오브젝트가 존재한다는 의미.
|
|
// 싱글톤 오브젝트는 하나만 존재해야 하므로 자신의 게임 오브젝트를 파괴
|
|
Debug.LogWarning("씬에 두개 이상의 게임 매니저가 존재합니다!");
|
|
Destroy(gameObject);
|
|
}
|
|
}
|
|
|
|
void Update() {
|
|
// 게임 오버 상태에서 게임을 재시작할 수 있게 하는 처리
|
|
}
|
|
|
|
// 점수를 증가시키는 메서드
|
|
public void AddScore(int newScore) {
|
|
|
|
}
|
|
|
|
// 플레이어 캐릭터가 사망시 게임 오버를 실행하는 메서드
|
|
public void OnPlayerDead() {
|
|
|
|
}
|
|
} |