본문 바로가기

TIL

UE Actor 라이프사이클

 

 

게임플레이 도중 다음 함수를 호출할 수 있지만, 플레이 도중 실제로 소멸되지 않는 액터가 많으므로 완전히 선택 사항입니다(가비지 컬렉션 참조).

  • 액터를 메모리에서 소멸시키는 대신 일단 게임 로직상 필요에 따라 액터를 제거(비활성화 또는 'pending kill' 상태로 전환)해야 한다는 의미입니다. 즉, 액터는 즉각적으로 메모리에서 삭제되지 않고, AActor::Destroy를 호출하여 레벨에서 제거하고, 나중에 가비지 컬렉션을 통해 실제 메모리 해제가 이루어지게 됩니다.
  • 액터는 킬 보류 중(pending kill)으로 표시되고 레벨의 액터 배열에서 제거됩니다.
  • 액터의 수명이 다해가는 것을 보장하기 위해 AActor::EndPlay가 여러 곳에서 호출.
  • 플레이 도중 액터가 포함된 스트리밍 레벨이 언로드되면 이 메서드와 레벨 트랜지션이 호출.
  • EndPlay가 호출되는 경우
    • Destroy 에 대한 명시적 호출
    • 에디터에서의 플레이가 종료된 경우
    • 레벨 트랜지션(심리스 트래블 또는 로드 맵)
    • 액터가 포함된 스트리밍 레벨이 언로드될 때
    • 액터의 수명이 만료됨
    • 애플리케이션 종료(모든 액터가 소멸됨)

출처: https://dev.epicgames.com/documentation/ko-kr/unreal-engine/unreal-engine-actor-lifecycle

 

'TIL' 카테고리의 다른 글

매크로와 RTTI  (0) 2025.03.20
World Grid 렌더링 최적화: 두 가지 접근 방식  (0) 2025.03.18
std::vector erase, std::remove 관련  (0) 2025.03.18
FName  (0) 2025.03.18
Today I Learned  (0) 2025.02.24