본문 바로가기
[과거 기록] 개발자 준비 여정/Unity : RPG

RPG 1차완료

by 삼색먕 2020. 3. 25.

 

 

우선 마지막글을 올린지 1개월이 지난것과

1개월동안 많은것을 구현했으나 일지를 남기지 못한것에  아쉬움을 많이느낀다.

또한 그이전 1개월간 C#과 유니티를 더 잘 다룰수 있었더라면 2개월까지 걸리지 않았을 것이라는 생각이 들어 아쉬움이 많이 남는다.

2개월간 만들기만 집중했더라면 더 빨리 만들 수 있었겠지만, 아직 C#,Unity를 잘다루지도 못했고, 아직 기초이론이 부족한상태였기에 공부를 병행하면서 만들어서 더 오래걸린것 같다.

 

 

우선 마지막글을 이어서 쓰자면, 

유아이가 동작하지 않았던건 EventSystem이 없어서 였다.

EventSystem을 추가하여 동작을 잘하게 되었고

 

그때까지만해도 조작이라고는 설정버튼과 조이스틱이 끝이었고, 캐릭터이동만 하는게 끝이었다.

 

1개월간 생각보다 많은걸 구현했는데,

-캐릭터 HUD는 그냥 슬라이더와 폰트몇개 에디터상에 있던거 찾아서 쓰고, 나머지는 그 어느 에셋에서 꺼내진건지 모르겠지만 아무거나 가져다가 붙여서 썼다. (이미지가 중요한게 아니기때문에...)

-오브젝트 풀을 구성하고 String Key값을 받아서 해당하는 풀의 오브젝트를Queue를 이용하여 하나씩 꺼내서 쓰게 만들었고, 오브젝트 풀을 사용하는 객체는 몬스터와, 캐릭터들이 사용하는 투사체이다.

-몬스터는 FSM을 이용하여 상태별로 패턴에 맞는 행동처리를 하게 하였고, 공격은 애니메이션 이벤트를 이용하여 특정 애니메이션 프레임에 데미지를 전달하게 하였다.

-캐릭터의 공격은 버튼을 눌렀을때 OverlappedSphere로 Enemy레이어만 검출하여 가장 가까운 적을 공격하게 하였고,

-캐릭터의 스킬은 물리엔진을 쓰지 않고 중력가속도 공식을 코드로 적용하여 직접 구현하였다.

-캐릭터의 스킬을 연출할때 부모총알오브젝트에 하위객체를 공전시키는 스크립트를 따로 작성하여 하위객체를 공전시키면서, 트레일을 사용하여 잔상을 통해 회전하는 연출을 하였다.

-레벨업을 하였을때, 캐릭터가 죽었을때, 몬스터가 죽었을때의 상태와 이펙트 출력도 구현하였다.

-레벨업시 5레벨마다 캐릭터 외형 변경을 해주었다.

-몬스터 체력은 몬스터 Ui Canvas를 따로 만들어서 WorldToScreen변환후 출력하였다.

-최대한 최적화를 하기위해 정적물체에 대해서 Static화 시켜주고 라이트맵핑 하였다.

-데이터를 PlayFab 데이터베이스에 세이브,로드도 구현하였다.

-직업 위치(Witch)는 시간상 공격,스킬을 구현하지 못하였다. (거너의 투사체를 넣으면 그대로 시연은 가능)

 

이렇게 만들고보니 조금더 업그레이드가 되면 좋겠지만,, 이미 최적화를 하는방법은 고려하지 않고 만들었던터라

터레인을 써버려서 최적화를 하는데에는 쉽지 않아서 모바일에서는 최대프레임이 나오지않는다.

(터레인 크기도 또 크게 생성 해버렸음.)

 

그래서 이제 이력서 지원을 하면서,

이론과 면접준비를 하면서,

새로운 게임을 구조를 차근차근 잡고, 최적화를 염두에 두고 만들어 볼 생각이다. 

'[과거 기록] 개발자 준비 여정 > Unity : RPG' 카테고리의 다른 글

200213 RPG  (0) 2020.02.13
200212 RPG  (0) 2020.02.12
200130 RPG  (0) 2020.01.30
200121 RPG  (0) 2020.01.21
200120  (0) 2020.01.20

댓글