전체적인 게임 플로우와 변수를 컨트롤 할 수 있는 시스템. 플레이어의 상태에 따라 게임의 상태를 관리한다.
전체적인 게임의 흐름을 관리하는 만큼 다른 스크립트가 reference를 쉽게 할 수 있게, 반드시 singleton 이 되어야 한다
Singleton - globally accessible class that exists in the scene , but only once.
관리자 역할을 하는 스크립트기 때문에 프로그램에 단 하나만 존재해야함. 그리고 모든 스크립트가 접근 할 수 있어야 한다. (다른 스크립트들이 쉽게 참조)
참조
GameManager.cs -> singleton 설정하는 방법
public static gameManager I;
void Awake()
{
I = this;
}

gameMangaer.cs
public static gameManager I;
void Awake() //singleton
{
I = this;
}
public void GameOver(){
//code
}
singleton을 한 gameManger.cs 에서 함수 생성 (GameOver)
만약 다른 오브젝트에서 특정 상황일때 게임오버를 시키고 싶다면?
sample.cs
public void test(){
if(condition){
gameManger.I.GameOver();
}
}
gameManger(script이름).I(singltone변수?).GameOver(쓰고싶은 함수)
이런식으로 간단하게 가져다 쓸 수 있다.