오늘은 Json으로 만든 임시 데이터 파일을 게임 시작 할 때 읽어오고, 게임 종료할 때 저장하는 기능을 구현하였습니다.

 

저번 개발 일지에서 두가지를 적었습니다.

 

하나는 아바타 정보를 index로 가지고 있는 것. 다른 하나는 DataManager가 함수만 제공하도록 한다는 것.

 

이 중 한가지만 적용이 되었습니다.

 

아바타 정보를 index로 가지고 있는 것은 여러모로 편리했습니다.

 

코드상으로도 좀 더 직관적이라 적절한 조치였다고 생각합니다.

 

하지만 이 방식대로 하면 DataManager가 데이터를 가지고 있지 않으면 값이 바뀔 때마다 UI를 들락날락 해야 했습니다.

 

그리고 처음 게임이 켜졌을 때 초기화 순서를 확실히 몰라 NullReferenceException이 자주 발생했습니다.

 

그래서 DataManager가 모든 데이터를 가지고 있도록 하였습니다.

 

다만 UI에서 값이 바뀔 때의 Index는 각 컴포넌트에 부착된 스크립트들이 가지고 있다가, 게임을 종료 할 때 MainMenuController가 모아서 DataManager의 SaveData 함수를 호출하면서 값을 저장합니다.

 

이 외에 한가지 작업이 이루어졌습니다.

 

바로 일괄적으로 적용되던 UpdateList를 하위 클래스로 분할하여 적용하였습니다.

 

그 이유는 Json 파일을 읽어오는 과정에서 필요한 타입만 다르지 작업 자체는 반복적이라 generic으로 함수를 지정했기 때문입니다.

 

그 결과 UpdateList에서 자신이 붙어있는 컴포넌트에 해당하는 Data를 DataManager에서 가져오는 방법을 찾을 수 없었습니다.

 

그래서 컴포넌트 별로 별도의 UpdateList의 하위 클래스를 붙이고, 이벤트 함수를 override 하여 그 내부에서 데이터를 따로 받아오도록 하였습니다.

 

마지막으로 테스트를 위한 멀티플레이 개발은 무료 에셋인 Photon Unity Networking 2(PUN2)를 사용하기로 결정하였습니다.

 

이를 이용해 최대한 함수를 wrapping하여 인터넷 상으로 P2P 방식을 통해 멀티플레이를 하도록 할 예정입니다.

 

이후에는 UI 개선과 이미지와 슬라이더 기능 추가, 견본 이미지를 통한 아바타 생성을 할 예정입니다.

 

여기까지 마무리가 된다면 그 이후에는 한숨 돌리며 게임 개발을 할 수 있을 것 같습니다.

 

개인적으로 게임 장르 별 공용 함수를 최대한 제작하고, 이를 이용할 계획입니다.

'폐기된 게시판 > MBGC' 카테고리의 다른 글

20.03.03 개발일지  (0) 2020.03.03
20.02.28 개발일지  (0) 2020.02.28
20.02.21 개발일지  (0) 2020.02.21
20.02.18 개발일지  (0) 2020.02.18
20.02.14 개발일지  (0) 2020.02.14

+ Recent posts