[Unity] 문명 개발 일지 02. 3D로 전환
- ⭐ Game Programming/Unity
- 2022. 9. 22.
3D로의 전환
그동안 3D애셋을 사놓은게 있어서 3D로 다시 개발하기로 하였다.
- 타일 그리드 클래스를 작업
- 2D에서는 유니티에서 제공하는 Tilemap클래스를 사용하였는데 3D에서도 사용할 수는 있으나 타일이 좌표 정중앙에 위치하지 못하는 등의 좌표 이슈가 있어서 그냥 그리드 클래스를 별도로 생성하여 관리할 수 있도록 하였다.
- 타일 마우스 오버처리
- 매프레임 마우스 포지션을 가지고 RayCheck를 하여 오버된 타일을 처리할 수 있도록 작업하였다. 기존 2D에서는 Tilemap 클래스에 Screen 좌표를 넣으면 타일 인덱스를 반환해주는 함수가 있었다.
- 유닛 모델링 추가 및 Idle 애니메이션 처리
- 예전에 사놓은 SyntyStudio의 모델링을 사용하여 타일과 유닛 모델링을 추가하였다. 애니메이션은 애셋스토어에서 무료 애셋을 받아 적용하였다.
- 카메라 드래그로 이동 및 줌인 줌아웃 처리
- 2D의 로직을 그대로 이어서 카메라 이동을 할수 있게 하였고, 줌인 줌아웃은 SpringArm의 높이만 위아래로 움직이게 처리하였다. 추후 실질적인 줌인 줌아웃 기능으로 변경할 예정이다.
유닛 이동
- 클릭으로 선택한 캐릭터의 이동 구현
- 2D때 만들어놓은 알고리즘을 활용하여 타일 좌표계만 수정하여 사용하였다.
- 이동시 run 애니메이션 처리
- 애니메이터 컨트롤러를 생성하였고, Moving Parameter를 추가하여 이동시 run 애니메이션이 연출될수 있도록 하였다.
- 이동 방향으로 회전
UI 추가
- 이동 경로 표시
- 라인 렌더러로 경로를 표시하였고, 턴 표시는 quad 오브젝트에 동그라미 배경을 만들어 카메라에 잘보이는 각도록 설정하였고, 그위에 3D 텍스트를 추가하여 표시하였다.
- 선택 유닛 정보 UI
- 선택 유닛 정보 UI는 기존에 2D때 사용하던것을 새로이 연결하였다.
추가 오브젝트
- 전사, 개척자, 도시 오브젝트 클래스 추가
- 도시 건설 기능 구현
베이스 오브젝트 클래스를 만들었고, 해당 오브젝트를 상속받는 전사, 개척자, 도시 오브젝트 클래스를 생성하였다.
요약
- 3D로의 전환
- 3D 타일 생성 및 관리 클래스 추가
- 캐릭터 모델링 및 애니메이션 처리
- 3D 이동 경로 표시
- 전사, 개척자, 도시 오브젝트 구현
반응형