오늘은 구현한 부분을 한 번 정리해보자.
데이터 로드
구글 시트 -> Json -> 데이터 매니저(로드) -> 클래스 -> SetData -> 데이터 로드 완료
데이터 매니저 -> 키 값(스테이지 id) -> 던전 데이터 로드 -> 던전 데이터 로드 완료
던전 생성 과정
스테이지 입장 -> 게임 매니저 -> 던전 매니저 생성 -> 퍼즐 매니저 생성
게임매니저에서 던전 매니저 생성과 동시에 키 값을 넘겨준다.
던전 매니저 생성 시 던전에만 존재하는 퍼즐 매니저 생성해준다.
던전 매니저는 키 값으로 데이터 매니저로부터 던전 데이터를 로드하여 맵과 몬스터를 스폰해준다.
던전 매니저로 스폰하기
던전 매니저에서 키 값이 되는 stageId와 던전 스테이지 정보를 매개변수로 받아 리소스 매니저를 통해 맵 프리팹을 불러오고, 맵의 위치는 0,0,0으로 고정으로 생성한다.
몬스터의 경우 각 맵 프리팹에 있는 맵 데이터를 통해 지정해준 위치의 Transform을 반환받아, 잡아주고 생성은 리소스 매니저에서 불러온 데이터로 생성해준다.
Split을 이용한 시트 데이터 구성
생성할 몬스터의 종류, Count를 ‘/’로 구분하여 준다.
split을 이용하여 문자열배열에 넣어준다.
count의 경우 TryParse를 이용하여 int형으로 변환해준다.
퍼즐 매니저
퍼즐 매니저가 생성되면 스테이지에 있는 모든 퍼즐을 리스트에 등록 시켜준다.
각 퍼즐의 완료 상태를 검사하여 클리어 가능한지 판단하여 bool값을 반환한다.
퍼즐 파괴 시 리스트에서 등록 해제하여 퍼즐을 관리해준다.
퍼즐 추상 클래스
모든 퍼즐이 상속 받는 클래스로, 퍼즐들의 공통 데이터, 함수들을 정의해준다.
퍼즐들의 클리어 bool값, 공통으로 사용되는 충돌로직을 상속받고, 추가적인 부분은 override하여 사용해주었다.