Unreal Engine/기능 구현 / / 2025. 6. 27. 22:10

[Unreal Engine 5] Enhanced Input System C++로 사용하기

반응형

 

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_인풋액션명

 

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

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유