티스토리 뷰
우선 타일셋을 이용해 첫 숙소 구도를 잡고 돌아다니는 걸 구현했다. 아직 충돌 처리가 없어서 벽을 마음대로 통과 가능. 일단 이런 충돌 처리랑 어색한 부분들을 수정한 다음 NPC 길찾기가 가능하게 손 볼 예정.
충돌 처리
충돌은 일단 위 이미지처럼 collider를 세팅할 수 있는 레이어를 하나 두고 손으로 하나씩 충돌 영역을 지정해주는 것으로 처리했다. 같은 타일이라도 어떤 곳은 이동이 가능해야하고 어떤 곳은 이동이 안 되어야해서 그냥 수동으로 해주는게 제일 낫겠다는 생각이 들었기 때문이다.
그래서 충돌 처리를 모두 적용한 다음 이동 테스트. 생각한 것처럼 잘 동작한다. 오브젝트 앞뒤 처리 같은게 아직 좀 아쉬운 부분이 있는데 이건 처리하기 귀찮은 거에 비해 당장 게임 플레이에 미치는 영향이 너무 적어서 나중에 폴리싱 단계에서 손을 좀 보려고 한다.
길찾기
또 길찾기다. 이제 이 숙소 내에서 선수들이 왔다갔다 하면서 이런저런 행동을 하는 걸 만들어야 하기 때문에 길찾기 구현이 필요한데, 유니티는 2D nav mesh같은 걸 지원해주지 않으므로 2D의 경우 직접 길찾기를 구현해야 한다.
길찾기는 이미 임의의 다각형에 대해 잘 동작하는 길찾기를 시뮬레이션 작업하면서 만들어뒀기 때문에 이걸 그대로 적용하려고 했는데, 문제는 TilemapCollider2D에서 빌드된 메시를 그대로 쓰면 너무 벽에 달라 붙어서 움직이기 때문에 이상하게 보인다는 점이었다.
여기 빨간색으로 표시된 삼각형들이 TilemapCollider2D에서 생성되는 메시 영역이다. 이 변을 그대로 따라 움직이면 너무 어색해지기 때문에 이 영역을 약간씩 확장해서 캐릭터가 벽으로부터 조금 떨어져서 걷게 만들 필요가 있었다.
그래서 주어진 메시에서 이런식으로 메시의 각 삼각형들을 바운드 영역을 유지하면서 상하좌우로 정해진 크기만큼 확장해서 쓰게 했다. 또 여기서는 선수들간 충돌은 고려하지 않을 생각인데, 그럴 경우 맵이 항상 static하기 때문에 매번 길찾기를 다시 빌드할 필요가 없다. 그런데 기존에 작성한 길찾기 모듈이 이런 경우를 고려하지 않고 작성했었어서 필요한 오브젝트들을 static하게 박아넣고 시작점과 도착점을 줬을 때 경로를 찾는 형태로 구현을 변경하는 과정도 병행했다.
그렇게 해서 테스트해본 길찾기. 몇 가지 중간 지점들을 찍어놓고 그 지점들을 쭉 왔다갔다하는게 잘 되는지 확인해 봤다. 다행히 아주 잘 동작해서 이제 길찾기는 이 시스템을 이용해서 동작하게 만들면 아무런 문제가 없을 듯 하다.
'개발 일지 > Programming' 카테고리의 다른 글
2020-02-27 공사장 아르바이트 (2) | 2020.02.27 |
---|---|
2020-02-26 선수 선발, 선수 행동 시뮬레이션 (0) | 2020.02.26 |
2020-02-24 기본 스킬 구현 완료 (1) | 2020.02.24 |
2020-02-21 궁수 / 화염술사 스킬 (0) | 2020.02.21 |
2020-02-20 챔피언, 스킬 추가 (0) | 2020.02.20 |