반응형
언리얼 엔진에서는 액터(Actor)가 생성되고 사용된 후 제거되는 전 과정을 라이프 사이클이라고 한다. 이는 유니티의 이벤트 함수 실행 순서와 유사하게, 특정 단계에서 호출되는 이벤트들이 존재하는데 이러한 라이프 사이클의 주요 이벤트를 간략히 정리해보았다.
1. 액터 초기화 단계
- Construction Script
- 액터가 처음 생성될 때 실행되는 스크립트.
- 에디터에서 속성이 변경될 때마다 실행되므로 게임 플레이 로직은 여기에 넣지 않는 것이 좋다.
- 주로 초기 설정과 구성 자동화에 사용.
- 예시: 초기 Transform 값 설정, 자식 컴포넌트 생성 및 배치 등.
- Event BeginPlay
- 게임이 시작되거나 액터가 월드에 스폰될 때 한 번만 호출됩니다.
- 초기화 작업을 수행하기에 적합한 이벤트입니다.
- 예시: 타이머 시작, 변수 초기화, 레벨의 다른 액터와의 초기 상호작용 설정.
2. 게임 중 액터 동작
- Event Tick
- 매 프레임마다 호출
- 매 프레임 업데이트가 필요한 작업(예: 위치 이동, 상태 체크 등)에 사용.
- 주의: 성능에 영향을 줄 수 있으므로 반드시 필요한 로직만 작성해야 한다.
- Event Possessed (Pawn 전용)
- 플레이어 컨트롤러가 Pawn을 소유할 때 호출.
- 예시: 카메라 설정, 소유권에 따른 초기화 작업.
- Event Unpossessed (Pawn 전용)
- 플레이어 컨트롤러가 Pawn의 소유를 해제할 때 호출.
- 예시: 컨트롤러 해제 후 동작 설정.
3. 액터 종료 및 정리
- Event EndPlay
- 액터가 제거되기 직전에 호출.
- 리소스 정리나 최종 작업을 수행하는 데 적합.
- 예시: 타이머 정리, 다른 액터와의 연결 해제.
- Event Destroyed
- 액터가 완전히 제거된 후 호출.
- 완전한 소멸 이후의 후속 작업이 필요할 경우 사용.
4. 실행 순서 요약
- Construction Script
- Event BeginPlay
- Event Tick (게임 중 매 프레임)
- Event EndPlay
- Event Destroyed
* 추가 팁
- Performance Best Practice
- Event Tick에 무거운 연산을 넣지 말고, 필요 시 타이머(Set Timer by Function Name)를 활용하여 특정 간격으로만 로직을 실행하는 것이 좋다.
- Blueprint 또는 C++로 구현
- 위 이벤트들은 블루프린트와 C++ 모두에서 구현 가능.
- 간단한 로직은 블루프린트에서 처리하고, 성능 최적화가 필요한 경우 C++을 활용하는 것이 좋다.
반응형
'Unreal 개발 > 기술 향상' 카테고리의 다른 글
[Unreal] 빌드 중 error C4756 overflow (0) | 2024.12.09 |
---|---|
[Unreal] error NU1100: 'net6.0' (0) | 2024.12.09 |
[Unreal] GitHub 버전 언리얼 엔진 설치 (0) | 2024.12.09 |
[Unreal] 블루프린트 중력 적용이 안될 때 (0) | 2024.11.25 |
[Unreal] Meta Quest Pro 핸드 트래킹 (0) | 2024.11.18 |