반응형

지난 시간에 캐릭터가 움직일 때마다 효과음이 들리도록 적용하고, 카메라가 캐릭터를 따라다니게 했습니다.

오늘은 지형 이동 시 틈새에 끼이는 문제를 해결하려고 해요.

캐릭터가 지형을 이동할 때 어색한 원인은 타일의 경계 부분에서 발생하는 충돌 오류 때문입니다.

앞서 지형을 생성하고 캐릭터가 지형을 벗어나지 않도록 타일맵에 Tilemap Collider 2D를 적용했었어요.

그래서 현재는 각 타일마다 콜라이더를 갖고 있습니다.

 

이런 경우 저렇게 타일의 경계 부분에서 오류가 발생하는 문제도 있지만, 물리 시스템 연산이 무거워지기 때문에 지형이 커지면 게임이 느려질 수 있습니다.

문제를 해결하기 위해서는 Composite Collider 2D를 사용해야 돼요.

Composite Collider 2D를 사용하면 타일맵의 콜라이더들을 통합하여 한 개의 콜라이더를 만들 수 있습니다.

타일맵에 Composite Collider 2D를 추가해 주세요.

 

Composite Collider 2D 추가 방법

 

그러면 아래처럼 타일맵에 Rigidbody 2D와 Composite Collider 2D가 추가됩니다.

Rigidbody 2D는 Composite Collider 2D 추가 시 자동으로 함께 추가됩니다.

Composite Collider 2D를 추가한 후에는 기존에 있던 Tilemap Collider 2D의 Used By Composite를 체크해 주세요.

이 옵션은 Composite Collider 2D를 사용하겠다는 것을 의미합니다.

그리고 Rigidbody 2D의 Body Type은 Static으로 변경해 주세요.

Static으로 설정하시면 움직일 수 없는 물체로 간주되어 물리 연산을 최적화하는데 도움이 됩니다.

 

콜라이더 설정 방법

 

여기까지 따라하시면 1차적인 지형 수정은 완료됩니다.

아래 이미지를 통해 Used By Composite 옵션 값에 따른 콜라이더의 차이를 확인할 수 있어요.

왼쪽의 이미지는 Composite Collider 2D를 사용하지 않는 경우입니다.

그래서 각 타일마다 초록색으로 격자 표시가 있으며, 이는 타일별로 갖고 있는 콜라이더들을 나타냅니다.

 

오른쪽의 이미지는 Composite Collider 2D를 사용하는 경우입니다.

그래서 ㅁ모양의 지형 1개가 1개의 콜라이더를 갖고 있는 모습을 확인할 수 있어요.

 

Used By Composite 옵션에 따른 콜라이더의 변화

 

이제 플레이를 해보면 평지 이동 시 어색한 부분이 없어진 것을 확인하실 수 있어요.

그러나 경사 부분은 아직 이상하네요.

 

 

평지 이동 시 지형 오류가 해결된 모습

 

타일맵을 확대해서 경사 부분을 자세히 보시면 아래처럼 미세한 틈들이 보이네요.

그래서 경사 이동 시 충돌 오류가 발생하여 움직임이 이상하게 보이는 거죠.

 

경사 부분의 틈새

 

저는 이 문제를 편법을 사용해서 해결했습니다.

더 좋은 방법이 있는지는 아직 모르겠네요.

우선, 타일맵 하위에 아래처럼 오브젝트를 하나 추가해 주세요.

 

타일맵 아래에 오브젝트가 추가된 모습

 

그리고 Box Collider 2D를 추가해 주세요.

 

Box Collider 2D 추가 방법

 

그러면 아까 추가한 오브젝트의 위치가 아래처럼 캐릭터 쪽에 있다는 것을 확인하실 수 있어요.

 

추가된 오브젝트의 위치

 

이제 이 오브젝트를 경사 부분으로 이동시켜 주세요.

 

오브젝트를 이동시킨 모습

 

오브젝트의 이동, 회전, 크기 조절은 아래의 붉은색 박스의 아이콘들로 가능합니다.

 

이동, 회전, 크기 조절 기능

 

그런 후에는 경사에 맞춰서 오브젝트를 회전시켜 주세요.

 

 

오브젝트의 기울기를 맞춰 주신 후에는 오브젝트의 크기를 조절해 주세요.

최종적으로는 아래처럼 기존에 틈새가 있던 부분을 완전히 덮어주실 수 있게 오브젝트를 수정해 주세요.

 

새로 추가한 오브젝트로 경사 부분의 콜라이더를 덮어준 모습

 

쉽게 따라하실 수 있도록 추가된 오브젝트의 정보를 알려드릴게요.

아래 내용을 그대로 입력하시면 위의 이미지와 동일하게 오브젝트를 배치할 수 있어요.

 

오브젝트의 위치 정보

 

이제 Scene을 플레이해보면 경사 부분에서 끼이는 문제가 해결된 것을 확인하실 수 있어요.

 

경사 부분의 끼임 문제가 해결된 모습

만들어 두었던 자료가 사라져서 자료를 새로 만들었네요.

혹시 질문사항, 수정이 필요한 부분이나 개선점 등이 있으시다면 댓글로 남겨주세요.

반응형

+ Recent posts