-
카메라 이동, 회전Game Programming/언리얼 2023. 9. 29. 13:38
Axis Mapping에서 W,S,D,A 의 방향을 설정한다.
void AMyCharacter::MoveForward(float Value) { if ((Controller != nullptr) && Value != 0.0f) { const FRotator Rotation{ Controller->GetControlRotation() }; const FRotator YawRotation{ 0.f, Rotation.Yaw, 0 }; const FVector Direction{ FRotationMatrix{YawRotation }.GetUnitAxis(EAxis::X) }; AddMovementInput(Direction, Value); } } void AMyCharacter::MoveRight(float Value) { if ((Controller != nullptr) && Value != 0.0f) { const FRotator Rotation{ Controller->GetControlRotation() }; const FRotator YawRotation{ 0.f, Rotation.Yaw, 0 }; const FVector Direction{ FRotationMatrix{YawRotation }.GetUnitAxis(EAxis::Y) }; AddMovementInput(Direction, Value); } }
케릭터 회전을 가져와, FRotator를 생성자로 받는 Matrix를 생성 해 Right, Up, Look을 가져 올 수 있다.
// Called to bind functionality to input void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); check(PlayerInputComponent); PlayerInputComponent->BindAxis("MoveForward", this, &AMyCharacter::MoveForward); PlayerInputComponent->BindAxis("MoveRight", this, &AMyCharacter::MoveRight); }
SetupPlayerInputComponent함수에서 PlayerInputComponent가 nullptr인지 체크한 후 BindAxis 함수에 언리얼 에디터에서 설정한 키를 맵핑 시킨다.
Axis Mapping에서 Right,Left,Up,Down 의 방향을 설정한다.
void AMyCharacter::TrunAtRate(float Rate) { AddControllerYawInput(Rate * BaseTurnRate * GetWorld()->GetDeltaSeconds()); } void AMyCharacter::LookUpAtRate(float Rate) { AddControllerPitchInput(Rate * BaseTurnRate * GetWorld()->GetDeltaSeconds()); }
Yaw 회전 값과 Pitch 회전을 조절한다.
키 입력에 따라 Rate 값이 다르게 들어온다.
AMyCharacter::AMyCharacter() :BaseTurnRate(45.f) ,BaseLookUpRate(45.f)
생성자에서 회젼량을 초기화한다.
'Game Programming > 언리얼' 카테고리의 다른 글
애니메이션 인스턴스 추가 (0) 2023.09.29 케릭터 점프, 마우스 회전 (0) 2023.09.29 카메라 스프링 암 (0) 2023.09.26 케릭터 클래스 (0) 2023.09.26 프로젝트 세팅 (1) 2023.09.26