티스토리 뷰

Movement Input

이전 단계에서 Enhanced Input 환경을 구성했으며, 이번 단계에서는 Input Action을 PlayerController에 바인딩하여 실제 동작과 연결한다.

SetInputComponet 함수를 통해 현재 컨트롤러가 사용할 InputComponet를 설정해줄 것이다.

 

우리는 UEnhancedInputComponent가 필요하므로, InputComponent가 해당 타입인지 확인할 필요가 있다.
이를 위해 CastChecked 함수를 사용하여, 대상 컴포넌트가 아닐 경우 즉시 크래시가 발생하도록 설정하였다.

 

저번 강의에서 MappingContext를 설정했으니, 이번에는 InputAction로 설정해주자.

마찬가지로 헤더 파일에서는 전방 선언을 통해 해당 타입의 존재를 명시하였다.
또한 이동을 담당하는 Move 함수를 작성하고, 해당 함수에서 사용하는 구조체 역시 전방 선언을 통해 명시하였다.

 

Move 함수에서는 먼저 Enhanced Input을 통해 전달된 2D 축 입력값을 추출한다.

해당 값은 앞뒤(W/S)와 좌우(A/D)에 대한 입력 강도를 의미한다. (1.0 -> 100%, 0.5 -> 50%)
이후 현재 컨트롤러의 회전 값을 가져오며, 이동 시에는 수평 회전만 필요하므로 Yaw 값만을 사용한다.


해당 Yaw 값을 기반으로 카메라 기준 전방(Forward) 및 우측(Right) 방향 벡터를 계산한다.
마지막으로 현재 조종 중인 Pawn이 유효한지 확인한 뒤, 계산된 방향 벡터와 입력 강도를 이용하여 AddMovementInput을 호출함으로써 카메라 기준 이동을 구현한다.

이렇게 만든 Move 함수를 이제 EnhancedInputComponet에 바인딩을 해주며, 이때 Triggered 옵션을 사용하여 누르고 있는 동안 Move 함수가 호출되도록 한다.

 

이제 AuroraPlayerController 클래스를 바탕으로 블루 프린트 클래스를 만들어 Mapping Context와 Input Action을 직접 할당해주자.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함