특정 방향으로 회전하는 액터 구현하기

김민수·2025년 1월 22일

언리얼 C++

목록 보기
15/32

1. RotationSpeed 변수 선언:

클래스 헤더 파일에서 RotationSpeed를 선언한다.

float RotationSpeed = 50.0f; // 기본 회전 속도

2. Tick 함수 활성화:

생성자에서 Tick 함수가 호출되도록 설정한다.

PrimaryActorTick.bCanEverTick = true;

3. Tick 함수 수정

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:

  • 액터의 로컬 좌표계에서 회전을 추가한다.
  • Yaw 방향(Z축 기준으로 회전)으로 RotationSpeed * DeltaTime 만큼의 회전을 추가하도록 설정한다.
profile
안녕하세요

0개의 댓글