오늘은 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

오늘은 특정 범위 안에 들어가면 다른 곳으로 캐릭터를 전이시키는 Teleport Trap을 개발하였습니다.

 

제가 11시에 개발일지 쓰는 것을 알람 맞춰 놓고 하는데 오늘은 조금 늦었습니다.

 

그 이유는 머리속에서 Teleport Trap을 구현하는 방법이 몇가지 생각이 나서 이것을 하나하나 다 해보느라 늦었습니다.

 

지치네요..

 

결국에는 ActorBase를 상속받은 TeleportTrapBase를 만들고, 이의 하위 Blueprint인 BP_TeleportNodeExample을 만들었습니다.

 

그리고 ActorBase를 상속받은 하위 Blueprit인 BP_TeleportTrapExample에서 두 개의 TeleportTrapBase를 Spawn하면서 위치를 잡아주고 있습니다.

 

BP_TeleportTrapExample을 ActorBase의 하위 클래스로 둔 이유는 혹시나 발생할 다형성을 위해서입니다.

 

개발하고 몇가지 아쉬운 점을 느꼈습니다.

 

첫번째는 확장성이 부족한 점. 여러 텔레포트 노드가 존재 할 때에는 완전히 새로운 클래스를 다시 만들어야 합니다.

 

이를 처음부터 여러개의 노드를 관리할 수 있도록 하면 좋지 않을까 싶습니다.

 

두번째는 이름 선정이 잘못 된 점. Node의 상위 클래스가 Trap이 되어버렸습니다.

 

이런 점들은 이슈에 추가를 해놓고 일정이 빨리 끝난다면 리팩토링 전에, 그렇지 않다면 리팩토링 과정 중에 수정을 하고자 합니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.02.27 개발일지  (0) 2020.02.27
20.02.26 개발일지  (0) 2020.02.26
20.02.22 개발일지  (0) 2020.02.22
20.02.20 개발일지  (0) 2020.02.20
20.02.19 개발일지  (0) 2020.02.19

생각보다 blocktrap 개발이 더뎌서 슬픕니다.

 

금방 할 줄 알았는데 계속 인지하지 못한 무언가가 꼬인 느낌을 받으며 엉키고 엉켰습니다.

 

그래도 결국 해냈습니다.

 

우선 범위 안에 들어가면 트리거가 올라갑니다.

 

이 트리거는 Tick에서 체크를 하다가 값이 올라가는 순간 특정 조건이 만족할 때까지 벽이 위로 올라가게 됩니다.

 

이 간단한걸 이틀에서야 구현을 했다니...

 

다음주 월요일에는 Teleport Trap과 Spawn Trap을 먼저 개발하고자 합니다.

 

일주일에 4일 개발하는데 다음주 토요일까지 하루에 1개씩 개발해서 다음주 내로 모든 함정을 개발 완료했으면 합니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.02.26 개발일지  (0) 2020.02.26
20.02.24 개발일지  (0) 2020.02.24
20.02.20 개발일지  (0) 2020.02.20
20.02.19 개발일지  (0) 2020.02.19
20.02.17 개발일지  (0) 2020.02.17

+ Recent posts