void AShooterCharacter::TurnAtRate(float Rate)
{
AddControllerYawInput(Rate * BaseTurnRate * GetWorld()->GetDeltaSeconds());
}
void AShooterCharacter::LookUpAtRate(float Rate)
{
AddControllerPitchInput(Rate * BaseLookUpRate * GetWorld()->GetDeltaSeconds());
}
- 위 두 함수를 추가하며, 방향키를 통해 카메라를 회전시키는 과정을 실습했다.
- 변수를 추가하는 과정에서 Property에 추가되는 내용이 왜 필요한지를 에러를 띄워가며 알려주는 부분이 인상깊었다.
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
float BaseTurnRate;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
float BaseLookUpRate;
- 맨 뒤에 AllowPrivateAccess를 적어주지 않으면 Private 멤버에 접근할 수 없다며 컴파일 오류가 발생한다
- 구체적인 에러 내용을 보기 위해 언리얼 엔진에서 핫 리로드를 통해 로그를 확인하는 부분도 유심히 보았다.
DeltaTime
- 기존에 배운 내용이지만 한번 더 짚고 넘어갈 수 있었다.
- 예를 들어 게임 루프가 1초에 60회 실행된다고 했을 때, 이 때 Delta TIme은 1/60초 또는 0.0166초가 된다.
- 게임은 초당 60~120프레임을 갖는데, 한 프레임이 갖는 시간이 처리되는 작업의 양에 따라 짧아질 수 있고, 길어질 수도 있다.
- 이 시간을 우리가 1초에 이동해야 할 값에 곱해줌으로써 이번 프레임에 얼만큼 이동해야 하는지를 결정지을 수 있다.
'Unreal Engine > [Udemy] UE5 Ultimate Shooter' 카테고리의 다른 글
11. 플레이어 애니메이션 추가 (0) | 2023.04.01 |
---|---|
10. 마우스 회전 / 플레이어 Mesh 추가 (0) | 2023.03.31 |
8. 카메라 연결 & 플레이어 이동 (0) | 2023.03.28 |
7. Spring Arm 만들기 (1) | 2023.03.27 |
6. UE_LOG(FString, float, bool, char, wchar ...) (0) | 2023.03.27 |
댓글