Make Unreal REAL.
article thumbnail
이득우의 언리얼 C++ 게임 개발의 정석

 

이 내용은 책에는 없고 필자가 직접 작성한 내용이다.

 

마지막으로 플레이어가 맵을 벗어나는 문제를 수정해본다.

  • 실제 게임에서도 플레이어의 이동 가능 영역을 제한하는 것은 중요하다.

 

섹션 스태틱 메시인 SM_SQUARE를 선택한 후 Ctrl + W 키를 눌러 에셋을 복제한다.

  • 이름은 SM_SQUARE_BLOCKED로 지정한다.

 

 

간단하게 생각해볼 수 있는 방법은 두 가지다.

  1. Section 클래스의 생성자에서 Box Component를 배치해 막는다.
  2. Static Mesh 에셋 자체에 Box Collision을 추가해 막는다.

 

여기서는 책에 없는 2번째 방법을 이용해보겠다.

 

스태틱 메시 편집창에서 Show Pivot 버튼을 누르면 피벗을 표시할 수 있다.

 

 

Collision 메뉴에서 Simple Collision과 Complex Collision을 체크하면 현재 메시에 설정된 Collision을 확인할 수 있다.

 

 

각 4개의 벽을 세워 막아야 하기 때문에 Add Box Simplified Collision을 4번 클릭해 4개의 Box Collision을 추가해준다.

 

 

Details 패널의 Collision 카테고리에서 각 Box Collision의 Center와 Extent를 다음과 같이 설정해준다.

 

Overlap 이벤트는 체크할 필요가 없으므로 Collision Enabled: Physics Only도 설정해준다.

 

 

플레이어가 맵 밖으로 나가지 못하도록 4개의 Collision이 세워진 것을 볼 수 있다.

  • Collision이 담장 위에 올려져 있는지 확인해야 한다.
  • 높이 상 담장과 겹쳐있다면 출입구가 막혀 섹션에 진입할 수 없게 된다.

 

 

섹션 클래스의 생성자에서 스태틱 메시 에셋을 SM_SQUARE_BLOCKED로 변경해준다.

 

 

이제 플레이어는 출입구를 통해서만 섹션에 드나들 수 있고 맵을 벗어날 수 없다.

 

profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그