오늘은 기획팀에게서 받은 시스템 기획을 토대로 UML 작성 및 추가 역할분배가 이루어졌다.

캐릭터 프리팹을 게임 시작 시 생성하는 것으로 한다. 시작과 동시에 세이브, CSV 파일들로 캐릭터 스크립터블 오브젝트를 생성한다. 캐릭터 프리팹들은 해당 스크립터블 오브젝트의 내용들로 채워진다. 이렇게 해서 Model이 완성. 캐릭터 컨트롤러가 해당 모델 정보들을 바탕으로 기능 수행을 담당한다.
파티 구성에 따라, 캐릭터 컨트롤러를 3개 받는 배열을 만든다. 인덱스가 0인 캐릭터가 메인 플레이어 캐릭터가 되고, 나머지는 패링 스킬만 가져온다. 플레이어의 정보는 앞서 만들어진 캐릭터 컨트롤러의 정보들로 이루어진다. 조작은 인풋 시스템으로 한다. 플레이어의 체력등 여러 필드들은 CSV에서의 레벨별 배율로 완성된다.
| ID | 기본 체력 | LEVEL | 배율 | 결과 |
|---|---|---|---|---|
| 1 | 10 | 1 | 2 | 20 |
| 1 | 15 | 2 | 3 | 45 |
| 1 | 20 | 3 | 3 | 60 |
스크립터블 오브젝트로 모델을 만드는 부분을 삭제, 프리팹화 해서 사용할 수 있게 한다. 게임 매니저, 세이브 매니저, 스테이지 매니저, 게임 씬 매니저 등 다양한 매니저들이 서로에게 필요한 역할만 담당할 수 있게 설계한다. 예를들어, 스코어의 경우 세이브 파일로 저장되는 부분이다. 이는 게임 매니저로 불러와진다.
세이브 하는 필드를 정리했다. 로드 된 데이터는 하나의 객체로 존재하고, 이 객체에서 정보를 복사해오는 식으로 사용한다.
작성된 UML에 따라 플레이어를 구현한다. 아직 캐릭터, 세이브, CSV 시스템 등이 완성되지 않았기 때문에 더미 데이터들로 구현한다.
에너미들은 공통된 탄환을 사용하는 경우가 많다. 그래서 탄환의 종류마다 오브젝트 풀을 생성하고, 해당 총알 프리팹을 사용하는 에너미들의 경우에는 오브젝트풀을 공유한다.