Tick 함수

김재혁·2025년 1월 21일
0

개념

  • 게임 루프에서 매 프레임마다 호출되는 함수.
  • 게임 내의 모든 객체나 컴포넌트가 프레임 단위로 지속적으로 업데이트되는 메커니즘 제공.

Tick 함수 선언

  • Actor나 Component에 대한 Tick 함수는 Tick(float DeltaTime)형태로 구현.
// Ex)
virtual void Tick(float DeltaTime) override;

DeltaTime

  • 지난 프레임과 현재 프레임 사이의 시간 차이를 나타내는 값.
    주로 프레임 속도(FPS)에 의존하지 않는 방식의 물체나 애니메이션에 사용.
  • 예시로 DeltaTime을 사용하면 프레임 속도에 따라 이동 거리가 달라지지 않도록 할 수 있음.
//  이동 예시
FVector NewLocation = GetActorLocation() + (FVector(0.f, 100.f, 0.f) * DeltaTime);
SetActorLocation(NewLocation);
  • DeltaTime에 (FVector(0.f, 100.f, 0.f) -> 이동할 속도를 곱해 프레임마다 이동을 일정하게 만듦.

Tick 활성화, 비활성화

  • Tick 기능은 기본적으로 비활성화 되어 있으며, 이를 활성화 하려면 PrimaryActorTick.bCanEverTick = true로 설정해야함. 기본적으로 false로 설정되어 있으며 true와 false로 활성화 비활성화를 설정 가능.

Tick 속도 조정

  • 기본적으로 매 프레임 호출되지만, 성능 최적화를 위해 호출 주기를 조정할 수도 있음.
    PrimaryActorTick.TickInterval을 설정하면 특정 시간 간격으로 Tick이 호출되게 할 수 있음.
// Tick을 0.1초 간격으로 호출하도록 설정
PrimaryActorTick.TickInterval = 0.1f;

Tick을 사용하는 주요 클래스

  • AActor : Tick을 통해 위치, 회전, 상태 등을 업데이트하는 데 사용.
  • APawn : Tick을 사용하여 이동, 회전, 입력 처리 가능.
  • UActorComponent : TickComponent 함수가 호출되어 해당 컴포넌트의 상태를 업데이트.
  • ACharacter : Tick을 사용하여 캐릭터의 이동, 애니매이션등을 업데이트할 수 있음.

0개의 댓글