본문 바로가기
UnrealEngine

UnrealEngine5 액션 매핑(Action Mapping)

by Cheddar 2024. 1. 4.

액션매핑

  • 축 매핑(Axis Mapping)과 비슷함
  • 축 매핑과 같이 함수를 바인딩
  • 액션 매핑에 바인딩된 콜백함수는 인풋 매개 변수를 사용하지 않음
  • 버튼을 누르면 함수가 호출 될 뿐
  • 함수의 입력값은 개발자가 결정
  • BindAction()함수를 사용

축 매핑의 경우 Tick()함수처럼 매 프레임 실행되지만,

액션 매핑은 일회성으로 버튼을 누르면 함수가 호출되는 방식이다.

Fire기능을 LMB(왼쪽 마우스)에 설정하고 Fire()함수르 바인딩
BindAction()함수의 매개변수

축 매핑과 비슷하게 함수를 바인딩하기위해 BindAction()함수를 사용한다.

매개변수로써 동작의 이름인 TEXT(), 객체 자신의 포인터, 콜백함수를 입력받는 부분에서 축 매핑과 동일하지만,

추가적으로 enum상수인 IE_Pressed 또는 IE_Released를 입력받아, "버튼을 눌렀을 떄 실행할지 버튼을 놓았을 떄 실행할지"를 결정할 수있다.

 

코드

void ATank::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
	Super::SetupPlayerInputComponent(PlayerInputComponent);

	//移動・回転の入力をバインディングする
	PlayerInputComponent->BindAxis(TEXT("MoveForward"), this, &ATank::Move);
	PlayerInputComponent->BindAxis(TEXT("Turn"), this, &ATank::Turn);

	//射撃(Fire)の入力をバインディングする
	PlayerInputComponent->BindAction(TEXT("Fire"), IE_Pressed, this, &ATank::Fire);
}

 

추가) "향상된 입력(Enhanced Input)"기능의 추가로 기존의 "입력"이 페지되었다.. 이에 대해여 정리필요...