UE5 라이프 사이클(Life Cycle) 함수

김태완·2025년 2월 6일

UnrealEngine에서 사용되는 라이프 사이클 함수들을 알아보자

강의중에 액터의 상태에 따라 호출되는 라이프 사이클 함수들에 대해 배웠는데, 종류가 꽤 다양했기에 우선 정리를 해 보기로 했다.

라이프 사이클 함수란?

게임 내 오브젝트의 배치, 생성, 파괴, 소멸 등 특정 상황에 따라 자동으로 호출되는 함수를 말한다.
가장 기본적으로 블루 프린트에서 본 BeginPlay와 Tick 함수가 있다.

라이프 사이클 함수의 종류

  • 생성자 (Constructor) : 오브젝트가 메모리에 생기며 호출이 된다.
    *월드상에 액터가 등장하지 않았을 경우에도 컴포넌트들을 생성하면 호출이 된다.
  • PostInitializeComponents() : 컴포넌트가 완성된 직후 호출되는 함수.
    컴포넌트끼리 데이터를 주고 받거나 상호작용을 할 경우에 사용하면 좋다.
  • BeginPlay() : 배치, 스폰이 된 직후 호출이 되는 함수이다.
    처음부터 배치가 되어 있을 경우, 게임 시작과 동시에 호출이 된다.
  • Tick(float DeltaTime) : 매 프레임마다 호출이 되는 함수이다.
    캐릭터의 움직임, 애니메이션 등에 활용하면 좋다.
    하지만 기능에 따라 성능이 떨어질 수 있으니 사용에 주의해야 한다.
  • Distroyed() - 오브젝트가 사라지기 직전에 호출되는 함수이다.
    호출이 되면 삭제가 되기에 EndPlay()함수를 호출하게 된다.
  • EndPlay() - 게임 종료, 파괴(Distroyed()), 레벨 전환 등의 경우에 호출이 되는 함수이다.
    호출이 된다고 Distroyed를 호출하지는 않는다.

호출 예시

우선 위와 같이 헤더 파일과 소스 파일에 각각의 함수를 만들고, Tick 함수를 제외한 로그를 하나씩 호출하게 만들어 주었다. 이후 액터를 배치 후 게임 시작, 종료, 액터 삭제 후 로그를 출력 해 보았다.

위와 같이 생성을 할 때, 시작 할 때, 끝날 때, 삭제할 때 각각의 로그들이 출력이 되는 내용이다.

마치며

오늘은 가볍게 라이프 사이클 함수들에 대해 정리를 해 보았다. BeginPlay와 Tick은 대충 처음 시작할 때, 매 순간마다 호출이 되는 함수라는 것을 알고 있었는데 몰랐던 다른 함수들과 함께 어느 순간에 사용해야 적합한지 사용을 해 보니 좋았던 것 같다.

0개의 댓글