RotationSpeed 변수 선언:클래스 헤더 파일에서 RotationSpeed를 선언한다.
float RotationSpeed = 50.0f; // 기본 회전 속도
생성자에서 Tick 함수가 호출되도록 설정한다.
PrimaryActorTick.bCanEverTick = true;
void AItem::Tick(float DeltaTime)
{
// 부모 클래스의 Tick 함수 호출
Super::Tick(DeltaTime);
// RotationSpeed가 0이 아니면
if (!FMath::IsNearlyZero(RotationSpeed))
{
// 액터의 로컬 회전을 변경
AddActorLocalRotation(FRotator(0.0f, RotationSpeed * DeltaTime, 0.0f));
}
}
(1) Tick 함수 사용:
Tick 함수는 매 프레임마다 호출되며, 액터의 상태를 지속적으로 업데이트할 수 있다.DeltaTime은 프레임 간 경과 시간을 나타내며, 이를 통해 프레임 속도에 무관하게 일정한 속도로 회전하도록 구현할 수 있다.(2) FMath::IsNearlyZero 사용:
RotationSpeed 값이 0에 가까운지 확인하는 함수다. 이를 통해 불필요한 계산을 방지하고, 회전 속도가 0일 때는 로직을 실행하지 않는다.(3) AddActorLocalRotation:
RotationSpeed * DeltaTime 만큼의 회전을 추가하도록 설정한다.