프로젝트세팅 엔진 입력바인딩에서 다음과 같이 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 |