유니티게임개발

유니티 게임매니저 만들기

낙타2020 2020. 8. 25. 11:37

유니티에서는 UI는 물론 플레이어의 상태에 따라 게임의 전반적인 상태를 관리하는 게임 매니저를 만들어야 합니다.

게임 매니저의 역할은 다음과 같습니다.

 

 - 점수 저장

 - 게임오버 상태 표현

 - 게임오버 되었을때 게임오버 UI 활성화

 - 플레이어의 사망을 감지해 게임오버 처리 실행

 - 점수에 따라 점수 UI 텍스트 갱신

 

 

싱글턴 패턴의 필요성

 

게임매니저처럼 관리자 역할을 하는 오브젝트(예를 들면 파일 매니저,몬스터 매니저,점수매니저등)는 일반적으로 프로그램에 단 하나만 존재해야 합니다.(단일 오브젝트) 그리고 언제 어디서든 즉시 접근 가능해야 합니다.

 

우리가 만들 게임 매니저 또한 이 두 가지 조건을 만족해야 합니다.

 

 

단일 오브젝트

 

점수를 관리하는 점수 매니저가 두 개라고 가정해봅시다. 이 경우 최고 점수도 두 개가 될 수 있습니다. 비논리적입니다.

또 다른 예로 파일에 접근하고 수정하는 파일 매니저가 두 개 있다고 가정해봅시다. 이 경우 두 파일 매니저가 동시에 하나의 파일에 접근하고 수정하면서 에러가 날 수 있습니다. 따라서 파일 매니저는 프로그램에 하나만 있는 것이 좋습니다.

이와 같은 이유로 점수와 UI, 게임상태를 관리하는 게임 매니저 또한 게임에 단 하나만 존재해야 합니다.

 

 

손쉬운 접근

 

매니저라고 불리는 오브젝트들은 보통 프로그램의 특정 영역이 아니라 어느 곳에서도 사용할 수 있는 편의 기능을 제공합니다. 따라서 매니저 오브젝트는 코드 어느 곳에서도 쉽게 접근하여 사용할 수 있도록 구현합니다.

 

우리가 구현할 게임 매니저는 게임오버 상태와 점수를 관리합니다. 게임오버 상태와 점수는 게임의 거의 모든 부분에서 사용됩니다. 따라서 어떤 스크립트에서도 씬에 있는 게임 매니저에 쉽게 접근할 수 있어야 합니다.

 

 

싱글턴을 사용하는 이유

 

정리하면 게임매니저는 아래 두 조건을 만족해야 합니다.

 

 - 어떤 곳에서도 손쉽게 게임 매니저 오브젝트에 접근 가능

 - 게임 매니저 오브젝트는 단 하나만 존재

 

이런 조건에서는 주로 싱글턴이라는 디자인 패턴을 사용합니다.

 

싱글턴 패턴은 '어떤 오브젝트가 프로그램에 단 하나만 존재해야 하며, 어느 곳에서도 쉽게 접근 가능해야 할 때' 사용됩니다. 싱글턴 패턴을 사용하면 게임 매니저가 씬에 단 하나만 있게 하고, 어느 곳에서도 게임 매니저에 즉시 접근할 수 있게 만들 수 있습니다.