Unity 5일차 TIL - game manager

sh·2023년 11월 3일

Game Manager 란

전체적인 게임 플로우와 변수를 컨트롤 할 수 있는 시스템. 플레이어의 상태에 따라 게임의 상태를 관리한다.

  • 점수 저장
  • 게임오버/시작
  • 점수계산 및 UI 띄워주기 (팝업)
  • 등등...

전체적인 게임의 흐름을 관리하는 만큼 다른 스크립트가 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;
    }

게임매니저(Game Manager) 세팅

  1. hierachy에서 create empty 클릭
  2. 이름을 GameManager로 설정
  3. Assets의 Scripts폴더 안에 c# script 생성.
  4. 이름을 GameManager.cs로 설정 후 object(1번에서 만든 것)에 드래그.

게임매니저 사용법

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(쓰고싶은 함수)
이런식으로 간단하게 가져다 쓸 수 있다.

0개의 댓글