유니티에서는 UI는 물론 플레이어의 상태에 따라 게임의 전반적인 상태를 관리하는 게임 매니저를 만들어야 합니다.
게임 매니저의 역할은 다음과 같습니다.
- 점수 저장
- 게임오버 상태 표현
- 게임오버 되었을때 게임오버 UI 활성화
- 플레이어의 사망을 감지해 게임오버 처리 실행
- 점수에 따라 점수 UI 텍스트 갱신
싱글턴 패턴의 필요성
게임매니저처럼 관리자 역할을 하는 오브젝트(예를 들면 파일 매니저,몬스터 매니저,점수매니저등)는 일반적으로 프로그램에 단 하나만 존재해야 합니다.(단일 오브젝트) 그리고 언제 어디서든 즉시 접근 가능해야 합니다.
우리가 만들 게임 매니저 또한 이 두 가지 조건을 만족해야 합니다.
단일 오브젝트
점수를 관리하는 점수 매니저가 두 개라고 가정해봅시다. 이 경우 최고 점수도 두 개가 될 수 있습니다. 비논리적입니다.
또 다른 예로 파일에 접근하고 수정하는 파일 매니저가 두 개 있다고 가정해봅시다. 이 경우 두 파일 매니저가 동시에 하나의 파일에 접근하고 수정하면서 에러가 날 수 있습니다. 따라서 파일 매니저는 프로그램에 하나만 있는 것이 좋습니다.
이와 같은 이유로 점수와 UI, 게임상태를 관리하는 게임 매니저 또한 게임에 단 하나만 존재해야 합니다.
손쉬운 접근
매니저라고 불리는 오브젝트들은 보통 프로그램의 특정 영역이 아니라 어느 곳에서도 사용할 수 있는 편의 기능을 제공합니다. 따라서 매니저 오브젝트는 코드 어느 곳에서도 쉽게 접근하여 사용할 수 있도록 구현합니다.
우리가 구현할 게임 매니저는 게임오버 상태와 점수를 관리합니다. 게임오버 상태와 점수는 게임의 거의 모든 부분에서 사용됩니다. 따라서 어떤 스크립트에서도 씬에 있는 게임 매니저에 쉽게 접근할 수 있어야 합니다.
싱글턴을 사용하는 이유
정리하면 게임매니저는 아래 두 조건을 만족해야 합니다.
- 어떤 곳에서도 손쉽게 게임 매니저 오브젝트에 접근 가능
- 게임 매니저 오브젝트는 단 하나만 존재
이런 조건에서는 주로 싱글턴이라는 디자인 패턴을 사용합니다.
싱글턴 패턴은 '어떤 오브젝트가 프로그램에 단 하나만 존재해야 하며, 어느 곳에서도 쉽게 접근 가능해야 할 때' 사용됩니다. 싱글턴 패턴을 사용하면 게임 매니저가 씬에 단 하나만 있게 하고, 어느 곳에서도 게임 매니저에 즉시 접근할 수 있게 만들 수 있습니다.
'유니티게임개발' 카테고리의 다른 글
안드로이드 콘솔 업로드시 오류 - 디버그가 가능한 APK를 업로드했습니다. (0) | 2020.09.08 |
---|---|
D8 : Program type already present: com.unity3d.ads.mediation.IUnityAdsExtendedListener (0) | 2020.09.01 |
유니티 게임매니저 싱글턴 구현 예제 (0) | 2020.08.25 |
Unity Android 64bit 지원 (0) | 2020.08.21 |