내일배움캠프 36일차 - 언리얼 엔진 C++: UE_LOG와 액터 라이프사이클

UE_LOG 사용법

관련TIL 링크: https://khalicika.blogspot.com/2026/03/20-unreal-engine-c.html

카테고리별로 Log필터링이 가능하다.
단, 필터목록은 '한번이라도 출력된 Log카테고리'만 보인다.

만약 Log카테고리를 새로 정의하고 싶을땐 해당 매크로를 사용한다.

헤더파일(.h) 선언
Log카테고리 정의매크로(로그명, 기본 로그심각도, All)
All: 필요시 나중에 모든 로그를 활성화할 수 있도록 설정

소스파일(.cpp) 정의
선언된 카테고리를 쓰고싶으면 해당 헤더를 include하면 된다.

커스텀Log 사용

출력 결과.
커스텀Log를 필터링할 수 있다.

액터 생명주기(LifeCycle)

액터가 생성(Spawn)되고 소멸(Destory)되는 과정을 나타낸다.

예) 생성자, BeginPlay(), Tick(), EndPlay() 등의 콜백함수들

생명주기의 이해가 필요한 이유

필요한 함수들이나 컴포넌트생성을 어느 타이밍을 적절하게 사용할지 알아야함.
ex) 매 프레임마다 호출되는 Tick함수에 무거운 로직코드를 삽입하면 게임이 매우 느려짐

LifeCycle함수

아래의 LifeCycle함수들은 번호 순서대로 실행된다.

1) 생성자
 : 오브젝트가 메모리에 생기면서 한번 호출되는 함수. 주로 월드에 배치하기전에 먼저 실행됨.
 : 변수 초기화, 컴포넌트 생성 및 계층구조 확립 등에 활용됨

2) PostInitializeComponents(): 모든 컴포넌트들이 초기화 및 호출이 끝난 직후 호출되는 함수.
 : 월드에 배치하기전에 컴포넌트끼리 상호작용(데이터교환 등)이 필요할 때 활용됨.

3) BeginPlay(): 런타임상 액터가 월드에 배치(Spawn)된 직후 호출되는 함수.
 : 월드에 배치된 다른 액터들과 상호작용 시 활용됨.

4) Tick(float DeltaTime): 매 프레임마다 호출되는 함수.
 : 조작, 애니메이션, 물리계산 등 매 프레임마다 필요한 상호작용에 활용됨.
 : 매 프레임 호출되므로 계산이 무거워지면 게임의 성능을 떨어트리므로 주의.

5) Destroyed(): 액터가 삭제될 때 직전 호출되는 함수.
 : 리소스 정리를 할 때 활용된다. 이때 EndPlay도 호출된다.

6) EndPlay(Enum): 게임종료, Destroyed(), 레벨 전환 등으로 사라질 때 호출되는 함수.
 : 매개변수 Enum은 해당 액터가 종료된 이유를 가진다.

※ 모든 LifeCycle 함수는 정의할 때 Super로 부모클래스를 호출하는 것을 잊지 말자


댓글

이 블로그의 인기 게시물

내일배움캠프 사전캠프 - 사전캠프설 연휴 커피 파밍 이벤트 작품 [ EXTREMITY ]

내일배움캠프 29일차 - 커리어데이 2일차 : 클라이언트 프로그래머로서 포트폴리오, 입사준비팁