반응형
[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 |