본문 바로가기
Unreal/Manual

Unreal C++ Input, Bind Action, Bind Axis

by Dev_카페인 2023. 8. 20.
반응형

[Unreal/C++] Input, Bind Action, Bind Axis

언리얼 C++ 을 이용한 입력 방법

 

1. 프로젝트 셋팅 -> 입력 설정에서 키 값을 설정한다. Action, Axis

2. SetupPlayerInputComponent 를 재정의 한다.

virtual void SetupPlayerInputComponent(class UInputComponent* InputComponent) override;
void AMyPawn::SetupPlayerInputComponent(class UInputComponent* InputComponent)
{
    Super::SetupPlayerInputComponent(InputComponent);

	// "Grow" 키를 누르거나 뗄 때 반응합니다
    InputComponent->BindAction("Grow", IE_Pressed, this, &AMyPawn::StartGrowing);
    InputComponent->BindAction("Grow", IE_Released, this, &AMyPawn::StopGrowing);

	// "MoveX" 와 "MoveY" 두 이동 충의 값에 매 프레임 반응합니다
    InputComponent->BindAxis("MoveX", this, &AMyPawn::Move_XAxis);
    InputComponent->BindAxis("MoveY", this, &AMyPawn::Move_YAxis);
}

BindAction 함수는 다음과 같은 파라미터를 받는다.

FName ActionName - 받기를 원하는 액션의 이름

EInputEvent InputEvent - 키 누름, 키 누름 해제, 더블 클릭 등 받기를 원하는 특정 키 이벤트

UserClass* object - 콜백(callback) 함수가 호출될 객체(object)

FInputActionHandlerSignature::TUObjectMethodDelegate<UserClass>::FMethodPtr Func - 입력 이벤트가 발생했을 때 호출될 함수의 포인터, 클래스 이름 앞에 '&' 기호를 붙이고, '::'뒤에 함수의 이름을 배치해 이 값을 지정한다.

 

BindAxis 함수는 BindAction 함수와 다르게 InputEvent가 없다.

 

아래는 키가 눌렸을 경우 호출되는 함수이다.

void AMyPawn::Move_XAxis(float AxisValue)
{
    // Move at 100 units per second forward or backward
    CurrentVelocity.X = FMath::Clamp(AxisValue, -1.0f, 1.0f) * 100.0f;
}

void AMyPawn::Move_YAxis(float AxisValue)
{
    // Move at 100 units per second right or left
    CurrentVelocity.Y = FMath::Clamp(AxisValue, -1.0f, 1.0f) * 100.0f;
}

void AMyPawn::StartGrowing()
{
    bGrowing = true;
}

void AMyPawn::StopGrowing()
{
    bGrowing = false;
}

 

 

 

 

 

 

 

 

 

반응형

'Unreal > Manual' 카테고리의 다른 글

Unreal BP Trace  (0) 2023.08.25
Unreal 새 레벨 만들기  (0) 2023.08.22
Unreal 구조체를 통한 데이터 테이블 만들기  (0) 2023.08.03
UE5 BP 키보드, 마우스 입력 (Input)  (0) 2023.07.23
Unreal5 UPROPERTY() 종류  (0) 2023.05.06