

1. Pawn을 상속받은 클래스의 Setup Player Input Component(UInputComponent* PlayerInputComponent)함수에 작성한다.

2. 매개변수 UInputComponent*를 UEnhancedInputComponent*로 형변환한다.

Cast<>()를 사용해도 무방하다.
CastChecked<>()를 사용하면 static_assert로 컴파일 타임에 해당 클래스 타입을 체크한다.
3. AController*를 APlayerController*로 형변환하여 UEnhancedInputLocalPlayerSubsystem*를 가져온다.

ULocalPlayer 클래스의 GetSubsystem으로 UEnhancedInputLocalPlayerSubsystem*를 가져오기 위해서는 ULocalPlayer* 가 필요한데, 이는 APlayerController*의 GetLocalPlayer()로 가져올 수 있다.
EnhancedInputLocalPlayerSubsystem*를 가져오는 이유는 UInputMappingContext*를 0번 슬롯에 연결하기 위해서이다.

UInputMappingContext*는 에디터에서 설정해줄 수 있다.

4. 에디터에서 Input Mapping Context와 Input Action을 생성한다.

5. 인풋 액션은 값 타입을 설정한다.
- 공격과 같은 액션은 bool
- 이동이나 마우스 좌표는 Vector 2D

6. 인풋 액션을 인풋 매핑 컨텍스트에 연결한다.

7. Pawn의 블루프린트 클래스에서 UInputMappingContext를 지정한다.

8. [C++] UEnhancedInputComponent*로 BindAction 함수를 호출한다.
- BindAction(UInputAction*, 입력 발동 조건, this, 실행할 함수 주소)


첫 번째 인자는 블루프린트 클래스에서 지정해줘야 한다.

입력 시, 실행할 함수는 반드시 매개변수로 const FInputActionValue& 로 지정해야 한다.
디버깅을 위해 UE_LOG를 띄운다.


9. [에디터] Pawn의 블루프린트 클래스에서 Input Action을 가져온다. IA_인풋액션명

지정한 키를 입력하면 입력이 잘 들어오고 있음을 확인할 수 있다.

'Unreal Engine > 기능 구현' 카테고리의 다른 글
| [Unreal Engine 5] 마우스 위치로 회전하기 (0) | 2025.06.29 |
|---|---|
| [Unreal Engine 5] 이동 중 충돌 확인 (0) | 2025.06.28 |
| [Unreal Engine 5] 5 이전 버전에서 Enhanced Input System 빌드 오류 해결 (0) | 2025.06.27 |
| [Unreal Engine 5] 폰(Pawn)에 빙의(Possess)하기 (0) | 2025.06.27 |
| [Unreal Engine 5] UPROPERTY 매크로 키워드 (0) | 2025.06.26 |
