본문 바로가기

언리얼엔진/C++슈팅프로젝트제작

UE5 플레이어 키입력 바인딩하기

프로젝트세팅 엔진 입력바인딩에서 다음과 같이 WASD를 설정해 줍니다.

바인딩된 키입력을 담을 변수  h,v와 처리함수를 playerPawn.h에 private로 선언해줍니다.

private:
	float h;
	float v;

	void MoveHorizontal(float value);
	void MoveVertical(float value);

선언한 함수를 playerPawn.cpp에 구현해줍니다.

void APlayerPawn::MoveHorizontal(float value)
{
	h = value;
}

void APlayerPawn::MoveVertical(float value)
{
	v = value;
}

이 처리함수를 바인딩해줍니다. SetupPlayerInputComponent()는 playerPawn의 부모가 Pawn이라 이미 오버라이딩되어 있어 내용만 추가해주면됩니다. 연결할 Axis이름, 연결할클래스, 연결할함수의 주소 순으로 입력해줍니다.

void APlayerPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
	Super::SetupPlayerInputComponent(PlayerInputComponent);
	PlayerInputComponent->BindAxis("Horizontal", this, &APlayerPawn::MoveHorizontal);
	PlayerInputComponent->BindAxis("Vertical", this, &APlayerPawn::MoveVertical);
}

이제 액터를 움직여 봅니다. playerPawn.h에 public:으로 moveSpeed변수를 추가해주고

	UPROPERTY(EditAnywhere)
	float moveSpeed = 500;

playerPawn.cpp에 Tick()함수에 움직임을 구현합니다. 현재 액터위치에 키보드 입력으로 방향을 만들어 moveSpeed*deltaTime만큼 움직이게 해줍니다. 자세한 설명은 구글하면 많이 나옵니다.

void APlayerPawn::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);
	FVector dir = FVector(0, h, v);
	dir.Normalize();
	FVector newLocation = GetActorLocation() + dir * moveSpeed * DeltaTime;
	SetActorLocation(newLocation);
}

실행하기전 아까 만든 BP_ShootingGameMode를 열고 DefaultPawnClass를 BP_PlayerPawn으로 변경해줍니다. 컴파일해줍니다.

플레이 해보면 위아래 옆으로 움직입니다.

'언리얼엔진 > C++슈팅프로젝트제작' 카테고리의 다른 글

적 방향 결정  (0) 2023.10.19
적 제작하기  (0) 2023.10.19
총알 발사 효과음 구현  (1) 2023.10.19
플레이어 제작하기  (1) 2023.10.19
슈팅프로젝트 환경 구성  (1) 2023.10.19