프로젝트 세팅에 보면 기본 입력이 EnhancedInput로 설정돼 있다.
EnhancedInput(=향상된 입력)을 사용하기 입력 액션, 입력 매핑 컨텍스트를 만든다.
입력 액션에서 액션(행동)자체를 정의한다. IA_JUMP의 트리거에 다운
지정해둔 모습.
입력 컨텍스트에서는 정확히 어떤 키를 다운했을 때 실행할 지 매핑해주면 된다.
그런 액션들이 지정된 컨텍스트를 사용한다는 내용을 알려줘야 한다. 플레이어 컨트롤러에 컨텍스트 매핑 추가.
UCLASS()
class GIMAT_API ASideScrollPlayerController : public APlayerController
{
GENERATED_BODY()
public:
void SetupInputComponent() override;
UPROPERTY(EditAnywhere, Category = "Input")
UInputMappingContext* InputMapping;
};
void ASideScrollPlayerController::SetupInputComponent()
{
Super::SetupInputComponent();
UEnhancedInputLocalPlayerSubsystem* InputSystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(GetLocalPlayer());
// protected는 자신의 input 컴포넌트 자체를 가지고 있다.
UEnhancedInputComponent* EnhancedInputComponent = Cast<UEnhancedInputComponent>(InputComponent);
// 모든 컨텍스트를 다 날리는 기능.
InputSystem->ClearAllMappings();
InputSystem->AddMappingContext(InputMapping, 0);
}
어떤 액션에 실제로 캐릭터가 뭐할 건지는 주로 컨트롤러나 캐릭터에서 정해줌. 이벤트 노드 옵션은 다 읽어보면 자세히 나옴.