오늘은 언리얼의 Enhanced Input System에 대해서 알아봤습니다.
Enhanced Input System 주요 기능
1. Input Mapping Context (IMC)
- 입력 구성을 그룹화하는 역할을 한다.
- 게임의 특정 상태(ex: 차량, 보행 등)에 따라 다른 입력 구성을 활성화할 수 있다.
2. Inptu Action (IA)
- 특정한 입력 이벤트(ex: 이동, 점프 등)를 정의하는 객체.
- 키보드, 마우스 등의 입력을 추상화하여 다양한 입력 기기에서 사용할 수 있도록 한다.
3. Input Modifier
- 입력 값을 변형하는 기능
- ex: Scale, Deadzone, Negate 등이 있다.
4. Input Trigger
- 입력이 활성화되는 조건을 설정하는 기능
- ex: Pressed(버튼이 눌릴 때), Released(버튼이 떼어질 때) 등
5. Player Input Component
- Enhacned Input을 사용하려면 UInputComponent 대신 UEnhancedInputComponent를 사용해야한다.
- BindAction()을 통해 Input Action을 바인딩한다.
사용 방법
1. Input Mapping Context (IMC) 생성
2. Input Action (IA) 생성
3. IMC에 IA 추가
4. C++에서 입력 바인딩
#include "EnhancedInputComponent.h"
#include "EnhancedInputSubsystems.h"
class AMyCharacter : public ACharacter
{
protected:
virtual void SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) override;
private:
void Move(const FInputActionValue& Value);
};
void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
UEnhancedInputComponent* EnhancedInputComponent =
Cast<UEnhancedInputComponent>(PlayerInputComponent);
// EnhancedInputComponent로 캐스팅
if (EnhancedInputComponent)
{
EnhancedInputComponent->BindAction(
IA_Move,
ETriggerEvent::Triggered,
this,
&AMyCharacter::Move
);
// 바인딩
}
}
void AMyCharacter::Move(const FInputActionValue& Value)
{
FVector2D MovementVector = Value.Get<FVector2D>();
AddMovementInput(GetActorForwardVector(), MovementVector.Y);
AddMovementInput(GetActorRightVector(), MovementVector.X);
}'언리얼 엔진' 카테고리의 다른 글
| 언리얼 TSublcassOf<>와 TSoftclassPtr<> (0) | 2025.02.07 |
|---|---|
| 언리얼 엔진 스마트 포인터 (0) | 2025.02.06 |
| 부모 액터를 중심으로 회전 하는 자식 액터 만들기 (0) | 2025.01.31 |
| 언리얼 VInterpTo 활용하여 왕복 운동 하는 엑터 만들기 (0) | 2025.01.24 |
| 언리얼 리플렉션이란? (0) | 2025.01.23 |