DOTY

InitializeComponent vs BeginPlay 본문

Unreal Engine

InitializeComponent vs BeginPlay

증식세포 2024. 4. 19. 14:31
728x90
반응형

InitializeComponent()

목적: 

InitializeComponent()는 컴포넌트가 월드에 추가된 직후, 실제 게임 플레이가 시작되기 전에 호출

목적은 컴포넌트의 초기화를 완료하는 것.

초기화는 컴포넌트의 기본 속성 설정, 초기 상태 설정, 필요한 리소스의 할당 등 ( ex. 물리 엔진 설정이나, 초기 가시성 상태 설정 등)


호출 시점:

컴포넌트가 월드에 처음 생성될 때 한 번만 호출되고, 액터의 BeginPlay() 전에 실행.

이는 컴포넌트가 게임 로직을 수행하기 전에 필요한 모든 기초적인 설정을 완료하도록 보장

 

사용 예시:
자료형 데이터 초기화: 스텟, 스킬, 아이템의 속성 등과 같은 게임 데이터 초기화
정적 리소스 할당: 메시, 텍스처, 사운드 등의 자원을 컴포넌트에 미리 할당
기본 설정 적용: 물리 설정, 충돌 설정, 초기 가시성 등을 설정

bWantsInitializeComponent = true; // 생성자 함수에 설정 필수


BeginPlay()

목적: 

BeginPlay()는 게임 플레이가 실제로 시작될 때 호출.

게임 시작의 트리거 역할을 하며, 게임 플레이와 관련된 로직을 초기화하는 데 사용.

게임 시작 시 실행해야 할 특정 스크립트나 타이머 설정, 게임 플레이에 필요한 이벤트 리스너 등록 등이 이 단계에서 이루어진다.


호출 시점: 

BeginPlay()는 모든 초기 설정이 완료된 후, 게임 월드가 완전히 준비된 상태에서 첫 게임 루프가 시작될 때 호출

이는 액터뿐만 아니라 모든 컴포넌트들에 대해서도 적용.

 

사용 예시:
이벤트 리스너 등록: AddDynamic()을 사용하여 이벤트에 반응하는 함수를 연결, 예를 들어, 캐릭터의 피격, 아이템 획득 등의 이벤트 처리
게임 로직 시작: 게임 시작과 동시에 특정 조건을 체크하거나, 게임 상태에 따라 변화를 주는 로직 실행 (동적인 물리 - 투사체)
타이머 설정: 게임 내에서 일정 시간마다 발생해야 하는 이벤트의 타이머를 설정

728x90
반응형
Comments