티스토리 뷰
Gameplay Ability System - Top Down RPG / Section 9-10
Just Move 2026. 7. 13. 02:43Setting Up Auto Running
짧게 클릭시 자동 이동을 위한 내용은 AbilityInputTagReleased 함수에서 구현한다.
AbilityInputTagHeld 함수와 마찬가지로, 처음에는 Tag 일치여부와 Tagerting 여부를 확인한다.

우리는 Held 함수에서 FollowTime을 계속 증가시키고 있었기에, Released 함수에서 해당 값을 체크하여 짧게 클릭한 경우가 맞는 지 판단한다.
이제 캐릭터를 직선으로 이동시키는 것이 아니라, 네비게이션 경로를 만들어서 목적지까지 Path Finding을 수행해야한다.
여기서 사용하는 것이 FindPathToLocationSynchrously() 함수로, 동기적으로 현재 위치에서 목적지까지의 Navigation Path를 생성한다.
인수로는 World Context, 현재 조종 중인 Pawn 위치, 목적지 위치를 넘겨야한다.
이렇게 얻은 NavPath에는 PathPoints 배열이 존재한다.
이 배열에는 시작 위치, 중간 경유점, 목적지가 순서대로 저장되며, 네비게이션 시스템이 계산한 최적 경로가 담긴다.
새로운 경로를 그리기 전에 Spline을 초기화하고, 이후에 PathPoints를 순회하며 각 Point를 Spline Point로 추가한다.
이러면 이후에 Navigation Path 전체가 Spline으로 변환되어 저장된다.
여기서는 해당 값들이 제대로 생성되었는지 테스트를 위해 각 PathPoints에 대해 Debug Sphere를 그려서 확인할 것이다.
Spline 생성 이후에는 자동 이동이 시작되기에 해당 bool 변수 값을 true로 설정하고, 이러면 Release 상태도 끝난것이기에 FollowTime과 bTargeting 변수도 다음 클릭을 위해 초기화한다.

추가적으로 NavigationSystem을 사용하기 위해서는 해당 모듈을 Build.cs 파일에 직접 추가해주어야 한다.

Navigation Path를 계산하려면 Navigation Mesh가 존재해야 하기 때문에 컴파일 후에 가장 먼저 Nav Mesh Bounds Volume을 추가해주어야 한다.
해당 볼륨의 크기는 현재 맵의 크기만큼 확대시켜주었다.
단축키 P를 누르면 해당 볼륨을 시각적으로 쉽게 확인할 수 있다.


이제 플레이 후에 좌클릭을 하면 해당 위치에 Debug Sphere가 생성된다.
따라서 Path Point가 정상적으로 계산되고 있다는 것을 알 수 있다.

추가적으로 기둥 같은 장애물을 설치하고, 장애물을 직선으로 지나는 경로에 정상적으로 우회 경로를 생성하는 지 체크할 것이다.
NavMesh를 확인했을 때 해당 오브젝트 위치에 구멍이 생겼다면 장애물로 인식한 것임을 알 수 있다.
이러한 장애물은 충돌 판정이 존재하는 오브젝트에 대해 NavMesh가 자동으로 판별한다.

이번에는 캐릭과 장애물을 직선으로 두고, 장애물 반대편을 클릭해보았다.
이러면 Debug Sphere가 장애물을 피해 우회하는 형태로 생성된 모습을 확인할 수 있다.

'Study > [Unreal] Udemy 강의' 카테고리의 다른 글
| Gameplay Ability System - Top Down RPG / Section 9-12 (0) | 2026.07.15 |
|---|---|
| Gameplay Ability System - Top Down RPG / Section 9-11 (0) | 2026.07.14 |
| Gameplay Ability System - Top Down RPG / Section 9-9 (0) | 2026.07.12 |
| Gameplay Ability System - Top Down RPG / Section 9-8 (0) | 2026.07.11 |
| Gameplay Ability System - Top Down RPG / Section 9-7 (0) | 2026.07.09 |
