본문 바로가기
# 게임/# Unity

Procedural Dungeon Generation in Unity #4 점검

by 쁘레레레레레 2020. 7. 30.

이전 글 : https://atli-yeondi.tistory.com/31

 

유니티 개발일지 + Procedural Dungeon Generation in Unity #3

이전 글 : Procedural Dungeon Generation in Unity #2 https://atli-yeondi.tistory.com/30 Procedural Dungeon Generation in Unity #2 이전 글 : https://atli-yeondi.tistory.com/29 Procedural Dungeon Gener..

atli-yeondi.tistory.com

 

이전 글 : https://atli-yeondi.tistory.com/33

 

사다리 만들기

몇일전부터 틈틈히 사다리를 만들려고 애썼다. 원래 코드 private void climb() { rb2D.gravityScale = 0.0f; movement.y = Input.GetAxisRaw("Vertical"); Vector3 moveVelocity = new Vector3(0, 0, 0); if (mov..

atli-yeondi.tistory.com

이번엔 그간 만들었던 것 중 어설프거나 수정이 필요한 것들을 골라서 선정했다.

 

1. 처음 룸으로 만들어졌던것들중 메인룸이 아닌 것들 중 비활성화가 안되어 hall이 된 방들에 대한 오류이다.

HallRoom이라 이름 붙였다

 

HallRoom에게서 나타나는 대표적인 상황이다. 이러한 방들은 이런 식으로 세로로 길쭉한 직사각형이거나 가로로 길쭉한 직사각형 형태를 주로 띠고 있다.

파란색 라인은 플레이어가 지나갈 복도 선이고, 노란색은 출입구로 뚫린 구멍이다.

 

캐릭터의 크기를 막론하고 저런 식으로 바닥과 동떨어져 있어서 방의 크기를 재설정하는 게 아닌 이상 사다리가 필요하다.

 

사다리를 밑으로 내려줄 예정이다.

 

2. 복도가 바닥/천장을 전부 먹어버리는 현상

스크린숏을 보면 노란색 실선이 보이는데 기즈모로 따로 설정한 디버그용 선이다.

이 선이 이어져 있다는 건 이런 식으로 다리를 이어줘야 한다는 팻말 같은 장치이다.

 

저걸 토대로 복도를 이어주는 건데

기준은 룸의 bottom-center이다.

 

정해진 범위 안에 정해진 크기의 방을 랜덤 한 값으로 만들다 보니 저런 식으로 A방의 바닥부터 이어져 온 복도가 B, C방의 바닥 또는 천장을 관통하는 경우가 생기고, 코드는 또 그러한 막힌 부분을 뚫어야 할 벽으로 인식해서 전부 뚫어버린 건데

 

저렇게 해버리면 캐릭터가 지나갈 수 없다.

 

만일 벽/바닥을 따로 처리해서 감지해준 후 감지됐을 때 2타일 혹은 2타일 밑으로 복도를 내린다 쳐도 답 없는 상황이 만들어지기가 쉬워진다.

 

음.. 대략 방법은 두 가지일 듯싶은데

1. 저런 방 자체를 없애버린다.

2. 그냥 복도를 감싸서 저런 방의 쓰임새를 죽인다.

 

이 정도 같다. 

'# 게임 > # Unity' 카테고리의 다른 글

FSM #2  (0) 2020.09.14
FSM #1  (0) 2020.08.04
움직임 입력값  (0) 2020.07.29
사다리 만들기  (0) 2020.07.29
유니티 개발일지 + Procedural Dungeon Generation in Unity #3  (0) 2020.07.27