이득우의 언리얼 C++ 게임 개발의 정석
이 내용은 책에는 없고 필자가 직접 작성한 내용이다.
마지막으로 플레이어가 맵을 벗어나는 문제를 수정해본다.
- 실제 게임에서도 플레이어의 이동 가능 영역을 제한하는 것은 중요하다.
섹션 스태틱 메시인 SM_SQUARE를 선택한 후 Ctrl + W 키를 눌러 에셋을 복제한다.
- 이름은 SM_SQUARE_BLOCKED로 지정한다.
간단하게 생각해볼 수 있는 방법은 두 가지다.
- Section 클래스의 생성자에서 Box Component를 배치해 막는다.
- 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로 변경해준다.
이제 플레이어는 출입구를 통해서만 섹션에 드나들 수 있고 맵을 벗어날 수 없다.
'Unreal Engine > 이득우의 언리얼 C++ 게임 개발의 정석' 카테고리의 다른 글
비주얼 로거의 활용 (0) | 2023.03.20 |
---|---|
유용한 비주얼 스튜디오 단축키 (0) | 2023.03.20 |
결과 화면 제작과 완성 (0) | 2023.03.19 |
게임 일시 정지 화면 제작 (0) | 2023.03.19 |
캐릭터 선택 레벨 제작 (0) | 2023.03.19 |