게임 개발 로그

레스토랑 대소동: 클래스 다이어그램 본문

게임 개발/레스토랑 대소동

레스토랑 대소동: 클래스 다이어그램

03:00am 2024. 12. 16. 10:32

 

 

1. 설거지 시스템

설거지 시스템이란 위의 gif의 우측 공간처럼 설거지가 추가/삭제되는 시스템이다.

WashingArea

설거지 시스템이 구현되는 공간에 대한 클래스다. WasingArea는 WashingUI, Plate를 참조하여 가지고 있다.

 

 

역할

  • Plate 풀링: WashingArea는 Plate를 담은 Queue와 List가 있다. 사용 가능한 접시를 Queue에 넣어두고 있으며, 사용할 때는 Queue에서 꺼내서 List에 담는다.
  • Plate 생성: WashingArea에는 CreatePoint(Vector3)가 있다. 이 CreatePoint에서 Plate를 생성하는 역할을 한다. Plate를 생성할 때는 난이도(level)에 따라 Plate의 hp와 한번에 생성되는 Plate의 개수를 랜덤성을 적용하여 생성한다.
  • Plate 삭제: 현재 선택된 Plate(selectPlate)의 Hp가 0이 되면 해당 Plate를 삭제(풀링에 추가)한다. 이후, 최상단의 그릇이 무엇인지 다시 파악하여 최상단에 위치한 Plate를 selectPlate로 지정한다.

변수

변수명  자료형  설명
plates List<Plate> 활성화된 Plate의 목록을 담고 있는 리스트다.
platesQueue Queue<Plate> 비활성화된 Plate의 목록을 담고 있는 리스트다. (풀링)
selectPlate Plate 현재 최상단에 위치한 Plate를 가르킨다.
plateMaxCnt const int 최대 생성할 수 있는 Plate의 개수. 이를 넘어서 설거지가 많아질 수 없다.
createPoint Vector3 설거지가 생성되는 위치. 설거지 추가 시 이 위치에서부터 추락한다.
colliderPoint Vector3 설거지가 떨어지다가 멈춰야 하는 위치다.
createPlateCoroutine Coroutine 여러 개의 접시가 한 번에 생성되는 경우 불리는 코루틴이다. 0초만에 n개의 접시가 한번에 생성되면 완전히 겹쳐서 의도하지 않은 방향으로 튕겨내기 때문에 코루틴으로 0.2초 정도의 틈을 주며 생성한다.
washingUI WashingUI 그릇의 생성/삭제를 UI와 함께 제어하기 위해 필요하다.
level int 게임디렉터의 level과 같다.
difficulty SODifficulty 레벨에 따라 변해야 하는 정보를 담은 ScriptableObject다.
설거지 최대 hp, 한번에 생성 가능한 설거지 그릇 수 등의 정보가 들어있다.

 

 

함수

  • public
함수명  반환 타입 설명
IsFullDish() bool 설거지가 다 찼는지 반환하는 함수다.
DecreasePlateHp(float) void 현재 선택된 그릇(selectPlate)의 hp를 매개변수 값만큼 줄인다.
SetSelectPlateHpPosition(EventParam) void SelectPlate의 position이 변했을 때, 선택된 Plate의 Hp를 표시하는 UI의 위치도 변경해주는 함수다.
  • private
함수명  반환 타입 설명
Reset() void 런타임에 불러올 필요가 없는 값들을 미리 넣도록 한다.
Awake() void 이벤트 버스 매니저에 이벤트 타입에 따라 구독자를 넣는다.
Start() void Reset에서 저장한 값들의 정보를 바탕으로 계산/변경되어야 할 변수들을 처리한다.
OnLevelUp(EventParam) void 레벨이 증가됨에 따라 level과 difficulty 값을 수정한다.
OnComboEvent
(EventParam)
void 콤보 발생 시 활성화되어 있는 설거지 그릇을 전부 삭제(풀링에 추가)한다.
OnAddPlate
(EventParam)
void n개만큼 설거지를 추가하는 함수다. 현재 선택된 그릇의 hp가 가득 차있으면 위에서부터 설거지가 떨어지고, hp가 0보다 크되 가득 차지 않았으면 아래서부터 그릇이 추가된다.
AddPlate(int n) void 그릇을 위에서부터 추가하는 함수다. 즉, CreatePoint에서부터 그릇이 생성되어 떨어질 수 있도록 한다.
PutInPlate() void 그릇을 아래에서부터 추가하는 함수다. 활성화되어 있는 그릇을 위로 옮기고, 그 아래로 설거짓거리를 추가한다.
GetRandomHpCount() int 레벨에 따라 새로 생성될 Plate의 Hp를 결정하고 리턴한다.
GetRandomCreatePlate
Count()
int 레벨에 따라 새로 생성될 Plate의 개수를 결정하고 리턴한다.
OnSuccessWashing
(EventParam)
void 설거지에 성공했을 경우 호출되는 함수로, selectPlate의 Hp를 EventParam으로 전해지는 양만큼 줄이고, 만약 hp가 0보다 작아질 경우 selectPlate를 삭제한다.
SelectPlate() void 가장 최상단에 있는 그릇이 무엇인지 검사하여 selectPlate를 다시 결정하는 함수다.
CreatePoolingObjects() void 게임 시작 시에 Plate를 최대 개수만큼 생성하여 Queue에 담아두는 함수다.
ICreatePlates() IEnumerator 여러 개의 접시가 한 번에 생성되는 경우 불리는 코루틴이다. 0초만에 n개의 접시가 한번에 생성되면 완전히 겹쳐서 의도하지 않은 방향으로 튕겨내기 때문에 코루틴으로 0.2초 정도의 틈을 주며 생성한다.

 

 

이벤트 목록

private void Awake()
{
    Managers.Instance.Event.Subscribe(EEventType.SuccessWash, OnSuccessWashing);
    Managers.Instance.Event.Subscribe(EEventType.CorrectOrder, OnAddPlate);
    Managers.Instance.Event.Subscribe(EEventType.LevelUp, OnLevelUp);
    Managers.Instance.Event.Subscribe(EEventType.SetPlateHpPosition, SetSelectPlateHpPosition);
    Managers.Instance.Event.Subscribe(EEventType.FoodComboEvent, OnComboEvent);
}
  • SuccessWash 이벤트 발생 시: 현재 선택된 Plate의 Hp를 줄인다. 선택된 Plate의 Hp가 0이 되면 현재 선택된 plate를 삭제(풀링에 추가)하고, 최상단 Plate가 무엇인지 검사하여 최상단 Plate를 selectPlate로 지정한다.
  • CorrectOrder 발생 시: CorrectOrder는 손님이 요구한 주문에 맞게 요리를 준비했다는 뜻이다. 주문을 성공했으면 설거지가 발생한다. 그래서 CorrectOrder 이벤트가 발생하면 WashingArea에서는 OnAddPlate() 기능이 발생한다. 말 그대로 설거지가 추가되는 기능이다.
  • LevelUp 발생 시: WashingArea의 Level을 LevelUp 이벤트에서 따라온 EventParam의 Level로 수정한다. 이 레벨에 따라 설거지가 생성될 때 Plate의 Hp나, 한번에 생성되는 Plate의 개수가 달라진다.
  • SetPlateHpPostion 발생 시: 가장 최상단 Plate가 삭제되었을 때나, 새로운 Plate가 추가되었을 때 이 이벤트가 발생한다. SetSelectPlateHpPostion()이라는 함수는 SelectPlate의 Hp를 나타내는 UI를 현재 최상단 접시의 위치로 옮겨주는 함수다. (최상단 접시가 바로 SelectPlate가 된다.)
  • FoodComboEvent 발생 시: OnCombeEvent 함수는 콤보가 발생되었을 때 그릇을 깨끗히 비우는 역할을 한다. 즉, 화면에 표시되고 있는 설거지들을 모두 풀링에 넣는다는 의미다.

 

 

 

 

WashingUI

 

설거지 관련 UI를 위한 클래스다. 특정 영역의 좌우로 움직이는 인디케이터와 퍼펙트 존, 최상단 접시의 HP 등을 표시한다.

 

 

역할

  • UI 움직임: PerfectZone, Indicator 등을 좌우로 움직인다.
  • 설거지 성공/실패 시 효과: 성공 시 인디케이터 위치에 이펙트를 출력하고, 실패 시 UI에 진동을 준다.
  • Hp 감소량 결정: 선택된 설거지 그릇의 Hp 감소량을 인디케이터와 퍼펙트 존의 위치를 비교하여 결정한다. 즉, 인디케이터가 퍼펙트 존의 가운데 영역에 가까울수록 더 많은 양이 감소한다.

 

 

변수

변수명  자료형  설명
actionBar Image 인디케이터가 좌우로 움직일 수 있는 영역이다.
perfectZone Image 설거지 성공/실패를 판단할 수 있는 영역이다. 인디케이터가 이 안에 들어와야 성공으로 판단한다. 좌우로 움직인다.
indicator Image 좌우로 움직이는 영역이다.
wrongImage Image 설거지 실패 시 actionBar의 색상을 이 Image의 색상으로 잠시 변경한다.
plateHp Image 현재 선택된 Hp를 UI로 보여주기 위한 Image다. 선택된 설거지 그릇이 있을 때만 화면에 나타난다.
successEffect ParticleSystem 성공 시 인디케이터 위치에서 재생되는 Effect다.
indicatorObj MovingObject indicator의 RectTransform, 움직이는 Speed, 움직이는 방향(dir) 등을 담고 있는 구조체(클래스)다.
perfectzoneObj MovingObject perfectZone의 RectTransform, 움직이는 Speed, 움직이는 방향(dir) 등을 담고 있는 구조체(클래스)다.
actionZone RectTransform 인디케이터가 움직일 수 있는 영역이 되는 actionBar의 RectTransform이다.
coWrongEffect Coroutine 실패 시 1초 동안 인풋을 받을 수 없다. 이 기능을 처리하는 코루틴이 진행 중인지, 아닌지 판단하기 위한 변수다.
coSetPlateHp Coroutine 선택된 그릇의 Hp가 감소할 때 선형보간으로 감소하도록 코루틴을 실행한다. 이 코루틴이 진행 중인지, 아닌지 판단하기 위한 변수다.
actionZoneSize LineSize actionZone의 왼쪽(min), 오른쪽(max) 좌표를 가지고 있는 변수다.
decreaseAmount float Hp의 감소량이다. 인디케이터가 퍼펙트 존의 가운데에 위치할수록 감소량이 커진다.
difficulty SODifficulty 레벨에 따라 달라지는 값을 모은 Scriptable Object다. 설거지 성공 시의 감소량이 달라진다.
level int 시간이 지남에 따라 증가하는 레벨이다.

 

 

함수

  • public
함수명  반환 타입 설명
SetPlateHpPosition
(Vector3)
void 선택된 설거지 그릇의 Hp를 나타내는 UI의 위치를 조정하는 함수다. SelectPlate 위에 표시될 수 있도록 UI 위치를 조정한다.
SetPlateHpFillAmount(float) void Plate Hp를 나타내는 UI의 Fill Amount를 매개변수 만큼 채울 수 있도록 하는 함수다.
FillHpFull() void Plate Hp를 나타내는 UI를 가득 채우는 함수다.
  • private
함수명  반환 타입 설명
Reset() void 런타임에 불러올 필요가 없는 값들을 미리 넣도록 한다.
Awake() void 이벤트 버스 매니저에 이벤트 타입에 따라 구독자를 넣는다.
Start() void Reset에서 저장한 값들의 정보를 바탕으로 계산/변경되어야 할 변수들을 처리한다.
Update() void 게임 진행 시 계속 업데이트 되어야 하는 함수를 부른다. MoveIndicator(), MovePerfectzone() 함수를 부른다.
OnLevelUp
(EventParam)
void EventParam으로 전해지는 level과 difficulty를 받아온다.
OnWashTheDish() void 엔터를 누를 때 호출되는 함수다. 인디케이터와 퍼펙트 존의 위치를 비교하여 설거지 성공이면 성공 이펙트 실행과 이벤트 버스의EventType.SuccessWash를 호출한다.
설거지 실패면 실패 효과를 주는 코루틴을 실행한다.
WrongAnswer
Effect()
IEnumerator 설거지를 실패했을 때 시작되는 코루틴이다. 1초 동안 UI에 진동을 주고 인풋을 받지 못 하게 된다.
IsWashingSuccess bool 엔터가 눌렸을 때 성공했는지 여부를 판단하는 함수로, bool 값을 리턴한다.
MoveIndicator void 인디케이터를 움직인다.
MovePerfectzone() void 퍼펙트 존을 움직인다.
SetPlateHp(float) IEnumerator 선택된 Plate의 Hp를 나타내는 UI를 변경하는 함수다. float 값을 받아와서 그 float 값만큼 Fill Amount를 변경한다.

 

 

이벤트 목록

private void Awake()
{
	Managers.Instance.Event.Subscribe(EEventType.LevelUp, OnLevelUp);
}
  • LevelUp 이벤트 발생 시: EventParam으로 전달되는 Level과 SODifficulty를 받아온다.

 

 

 

 

 

 

Plate

풀링 오브젝트로서 활성화/비활성화 상태를 가지고 있는 객체다. 설거지 공간에 존재하는 설거지 그릇 클래스이다.

 

 

역할

  • Hp 관리: Hp를 가지고 있어서 Hp량에 따라 삭제되어야 하는지를 판단한다.
  • 풀링으로 생성/소멸: 풀링을 하기 위해 Active()를 할 때와 DeActive()를 할 때의 처리를 한다.
  • Off Kinematic: 충돌되고 일정 시간(1초)가 지나면 키네마틱을 끈다. 1초 뒤에도 물리 효과를 켜 둔다면 충돌 시마다 위치가 조금씩 변경되어 떨어지거나 튕겨나갈 수 있기 때문이다.

 

변수

변수명  자료형  설명
CurHp float public 변수로, 현재 hp 정보를 담고 있다.
MaxHp float public 변수로, 최대 hp 정보를 담고 있다.
isSelected bool public 변수로, 이 그릇이 선택되어 있는지 정보를 담고 있다.
dustParticle ParticleSystem Hp가 1에 가까우면 dust Particle을 보여준다. 더러운 효과를 내기 위함이다.
sineParticle ParticleSystem Hp가 0에 가까우면 sine Particle을 보여준다. 깨끗한 효과를 내기 위함이다.
curHp float 현재 hp 정보를 담고 있는 private 변수다.
maxHp float 최대 hp 정보를 담고 있는 private 변수다.
isActive bool 활성화되어 있는지 여부를 담고 있는 변수다.
createPoint Vector3 그릇이 생성되어야 하는 위치를 담고 있는 변수다.

 

 

함수

  • public
함수명  반환 타입 설명
Active(float Hp) void 풀링에서 꺼내 쓸 때 활성화하는 함수다. Particle 실행, Hp 조정, 포지션 초기화 등의 기능을 수행한다.
DeActive() void 파티클을 멈추고, 게임 오브젝트 표시를 비활성화하는 함수다.
SetCreatePoint(Vector3) void 생성 위치를 매개변수의 위치로 설정하는 함수다.
DecreasePlateHp(float) void 매개변수만큼 해당 그릇의 hp를 줄이는 함수다.
  • private
함수명  반환 타입 설명
IRandomCreateParticle void 활성화되어 있을 때 특정 시간마다 랜덤 위치에 파티클을 생성하는 함수다.
IOffPlateKinematic() void 충돌 이벤트가 발생하고 1초 뒤에 Kinematice을 끄기 위한 코루틴이다.
OnCollisionEnter(Collision) void 충돌이 되었을 경우 위의 코루틴을 발생시키고, Hp UI를 조정하는 EventType.SetPlateHpPosition을 발생시키는 함수다.

 

 

이벤트 목록

private void Awake()
{
	Managers.Instance.Event.Subscribe(EEventType.LevelUp, OnLevelUp);
}
  • LevelUp 이벤트 발생 시: EventParam으로 전달되는 Level과 SODifficulty를 받아온다.

 

 

 

 

 

 

 

 

 

 

2. 매니저

 

Managers

  구현된 매니저에 쉽게 접근 가능하도록 통합한 클래스다. EventBusManager, DataManager, InputManager를 생성하여 가지고 있다.

 

 

역할

  • Manager 접근: 구현된 매니저를 모두 생성하고 가지고 있어서 Managers.Instance로 모두 접근 가능하다.
  • Manager 생성: 언제 어디서 불리든, 호출 시에 Managers의 Instance가 만들어지며 EventBusManager, DataManager, InputManager 등도 함께 생성된다.

 

 

변수

변수명  자료형  설명
s_instance static Manaegers private 변수로, 생성된 instance 그 자체이다.
Instance static Managers public 변수로, 생성된 s_instance를 반환한다.
_data DataManager DataManger를 생성하여 담고 있는 변수다.
_event EventBusManager EventBusManager를 생성하여 담고 있는 변수다.
_input InputManager InputManager를 생성하여 담고 있는 변수다.
Data DataManager _data를 리턴하는 public 변수다.
Event EventBusManager _event를 리턴하는 public 변수다.
Input InputManager _input을 리턴하는 public 변수다.

 

 

함수

  • private
함수명  반환 타입 설명
Start() void 시작 시에 Init()을 호출한다.
Update() void 매 업데이트마다 _input.OnUpdate()를 호출한다. 인풋을 매 업데이트마다 받기 위함이다.
Init() static void s_instance가 null이라면 새롭게 Managers를 생성하는 함수다.

 

 

 

 

 

EventBusManager

  이벤트를 관리하기 위한 매니저다. 이벤트 타입에 따라 구독자를 추가, 삭제함으로서 한 가지의 이벤트가 발생했을 때 여러 구독자에게 이벤트를 전달할 수 있다. 이벤트 발생 시 EventParam이라는 매개변수를 전달하고 있기 때문에, 이벤트 발생 시 필요한 정보까지 전달할 수 있다.

 

 

역할

  • 이벤트 관리: Events에 관리되어야 하는 이벤트 목록이 들어 있다.
  • 구독자 추가/삭제: Subscribe, Unsubscribe로 이벤트 타입에 따라 구독자를 추가, 삭제할 수 있다.
  • 이벤트 호출: Publish를 호출하여 해당 이벤트의 구독자들 함수를 호출할 수 있다.
  • 이벤트 발생 시 정보 전달: 이벤트 발생 시 EventParam을 전달 가능하기 때문에 필요한 정보를 함께 전달할 수 있다.

 

변수

변수명  자료형 설명
Events IDictionary<EEventType, UnityEvent<EventParam>> 타입에 따라 이벤트를 담아두는 딕셔너리다.

 

 

함수

  • public
함수명  반환 타입 설명 설명
Subscribe(EEventType, UnityAction
<EventParam>)
void 이벤트 타입에 구독자 함수를 추가하는 함수다.
Unsubscribe(EEventType) void 이벤트 타입에 있는 모든 구독자를 삭제하는 함수다.
Publish(EEventType, EventParam) void 이벤트를 발생하는 함수다.
Clear() void 모든 이벤트를 삭제하는 함수다. 현재는 씬 변경 시마다 호출되도록 하고 있다.

 

 

 

 

 

DataManager

데이터를 관리하기 위한 매니저다. Json 파일로 Save & Load가 가능하다.

 

 

역할

  • 데이터 저장: 현재까지의 게임 진행 상황을 Json 파일로 저장한다.
  • 데이터 불러오기: 저장된 Json 파일을 불러와서 게임 진행 상황에 적용할 수 있도록 한다.

 

함수

  • public
함수명  반환 타입 설명
SaveJsonData(string jsonData, string filePath) void jsonData와 filePath를 매개변수로 받아와서 해당 파일 위치에 jsonData를 저장한다.
LoadJsonData(string filePath) string 파일 위치에 있는 Json을 받아와서 string으로 변환한 뒤 반환하는 함수다.

 

 

 

 

 

InputManager

  입력을 관리하기 위한 매니저다. 많은 키가 겹쳤을 때 한 번에 입력 처리가 가능하도록 해준다.

 

 

역할

  • 입력 처리: 입력을 한번에 처리 가능하도록 한다.

 

변수

변수명  자료형  설명 
KeyAction Action 입력된 키에 따른 함수들을 저장하는 액션이다.

 

 

함수

  • public
함수명 반환 타입 설명
OnUpdate() void 어떠한 Key Input이 들어왔을 때 KeyAction에 포함된 Action들을 Invoke(실행)한다.

 

 

 

 

 

3. Effect 관련

 

PlayerController

  플레이어(유저)가 클릭할 때마다 클릭 이펙트를 생성하는 컨트롤러 클래스다. 클릭 인풋을 받는 역할을 한다.

 

 

역할

  • 입력에 따른 기능: 클릭 시 클릭 이펙트를 출력하도록 한다.

 

변수

변수명  자료형  설명
clickEffect GameObject 클릭 시에 만들어져야 하는 파티클 프리팹(게임 오브젝트)를 담고 있다.

 

 

함수

  • private
함수명  반환 타입 설명
Start() void Managers.Instance.Input.KeyAction에 PlayEffect() 함수를 추가한다.
PlayEffect() void 마우스 버튼이 눌렸는지 검사하고, 마우스 버튼이 눌렸다면 풀링 매니저를 통해 클릭 이펙트를 추가한다.

 

 

 

 

 

TouchEffect

  클릭 시에 생성되는 Effect 클래스다.

 

 

역할

  • 파티클 재생
  • 파티클 재생 종료 시 풀링

 

변수

변수명  자료형 설명
type string 풀링 매니저에서 타입 파악을 위한 string 변수다.
particle ParticleSystem 생성 시 재생되는 Particle이다.

 

 

함수

  • public
함수명  반환 타입 설명 
GetObjType() string 풀링 매니저에서 사용하는 함수다.
  • private
함수명 반환 타입 설명
Awake() void 파티클시스템을 GetComponenet로 담아 온다.
OnEnable() void 활성화 시 particle을 재생한다.
Update() void 파티클의 재생이 끝났는지 검사한다. 끝났다면 풀링에 추가한다.

 

 

 

 

OrderDishEffect

  음식을 제출하는 그릇의 Effect 기능을 구현한 클래스다. 주문 실패 시 해당 그릇 진동 + 색 변환 효과를 주고, 설거지 그릇이 가득 차서 음식 제출이 불가능한 상황에는 설거지 하라는 UI를 띄운다.

 

 

역할

  • 주문 실패 시 진동: 주문 실패 시 그릇 진동 + 색 변환을 해서 가시적 효과를 준다.
  • UI 생성: 음식 제출이 불가능한 경우 설거지를 하라는 UI를 출력한다.

 

변수

변수명  자료형 설명
textUI GameObject 설거지가 가득 찼다는 팝업 UI를 담고 있는 프리팹 게임 오브젝트이다.
coPlayWrong Coroutine 주문 실패 시에 실행되는 Coroutine을 담는 변수다. 이미 Coroutine이 실행 중인지 판단을 위한 변수다.
render Renderer 그릇 머터리얼의 색 변경을 위한 Renderer 정보다.
effectOjb GameObject textUI(프리팹)가 생성된 Object를 담는 변수다. 만약 이미 생성되어 있으면 그것을 삭제한 뒤 다시 생성한다.

 

 

함수

  • public
함수명  반환 타입 설명
ShowFullDishEffect(EventParam) void 설거지 그릇이 가득 찼는데 음식 제출하는 경우 호출되는 함수로, 음식이 가득 찼다는 UI를 생성, 출력한다. (이미 UI가 생성되어 있는 경우에는 삭제 후 재생성)
PlayWrongEffect
(EventParam)
void 주문 실패할 경우 호출되는 함수로, 실패 효과 코루틴(PlaySwing)을 실행한다.
  • private
함수명  반환 타입 설명
Awake() void Managers.Instance.Event에 구독자를 추가한다.
Start() void 시작 시 받아와야 하는 정보를 받아온다.
PlaySwing IEnumerator 음식 제출 실패 시 그릇 진동 효과 + 색 변경 효과를 주는 코루틴이다.
1초 동안 진동 + 색 변경 효과를 준다.

 

 

이벤트 목록

private void Awake()
{
	Managers.Instance.Event.Subscribe(EEventType.FailOrder, PlayWrongEffect);
	Managers.Instance.Event.Subscribe(EEventType.FailofFullDish, ShowFullDishEffect);
}
  • FailOrder 이벤트 발생 시: 진동 + 색 변경 효과를 준다.
  • FailofFullDish 이벤트 발생 시: 설거지 그릇이 가득 차서 제출을 할 수 없다는 UI를 출력한다.

 

 

 

 

 

 

4. Data 관리

UserDataDirector

  유저 데이터를 저장, 불러오기하는 디렉터다. 게임 씬에서만 사용되는 것으로, 매니저가 아니다. 싱글 모드, 멀티 모드를 나누어 저장 데이터를 관리한다. cPlayer는 점수, 캐릭터 타입, 성공한 손님 수 정보를 담고 있는 클래스(구조체)이고, UserDataDirector는 이 정보를 담은 UserData를 SingMode와 MultiMode로 나누어서 가지고 있다.

 

 

역할

  • 게임 저장
  • 게임 불러오기

 

변수

변수명  자료형  설명
singleUserData UserData 1인 모드의 점수를 저장하는 구조체다. 점수가 높은 5명의 정보를 저장한다.
multiUserData UserData 2인 모드의 점수를 저장하는 구조체다. 점수가 높은 5팀의 정보를 저장한다.

 

 

함수

  • public
함수명  반환 타입 설명
Init() void 싱글/멀티의 저장 정보가 있다면 해당 정보를 불러오는 함수다. 시작 시에 불린다.
Load() void 싱글/멀티의 저장 정보를 받아온다.
SaveSingleMode() void singleMode의 파일 패스에 현재 플레이어의 정보를 저장한다.
SaveMultiMode() void multiMode의 파일 패스에 현재 플레이어의 정보를 저장한다.
  • private
함수명  반환 타입 반환 타입
Save(bool isSingle) void single 모드 여부에 따라 실질적으로 저장하는 코드를 넣은 private 함수다.
Compare(cPlayer, cPlayer) int 유저간의 등수 비교를 하는 Compare 함수다. cPlayer의 점수로 등수 비교를 한다.

 

 

 

 

 

5. Ect

  UI에서도 Text 효과를 위해 구현한 클래스(PopupTextUI, StartTextUI)들과 TitleScene에서 글자가 깜빡이는 효과, 스크립트 출력 효과 등을 위해 구현한 클래스(TitleSceneUI)이다.