Unreal 개발/기술 향상

[Unreal] 액터의 라이프 사이클

내공부방 2024. 11. 26. 00:00
반응형

언리얼 엔진에서는 액터(Actor)가 생성되고 사용된 후 제거되는 전 과정을 라이프 사이클이라고 한다. 이는 유니티의 이벤트 함수 실행 순서와 유사하게, 특정 단계에서 호출되는 이벤트들이 존재하는데 이러한 라이프 사이클의 주요 이벤트를 간략히 정리해보았다.

 

1. 액터 초기화 단계

  • Construction Script
    • 액터가 처음 생성될 때 실행되는 스크립트.
    • 에디터에서 속성이 변경될 때마다 실행되므로 게임 플레이 로직은 여기에 넣지 않는 것이 좋다.
    • 주로 초기 설정구성 자동화에 사용.
    • 예시: 초기 Transform 값 설정, 자식 컴포넌트 생성 및 배치 등.
  • Event BeginPlay
    • 게임이 시작되거나 액터가 월드에 스폰될 때 한 번만 호출됩니다.
    • 초기화 작업을 수행하기에 적합한 이벤트입니다.
    • 예시: 타이머 시작, 변수 초기화, 레벨의 다른 액터와의 초기 상호작용 설정.

 

2. 게임 중 액터 동작

  • Event Tick
    • 매 프레임마다 호출
    • 매 프레임 업데이트가 필요한 작업(예: 위치 이동, 상태 체크 등)에 사용.
    • 주의: 성능에 영향을 줄 수 있으므로 반드시 필요한 로직만 작성해야 한다.
  • Event Possessed (Pawn 전용)
    • 플레이어 컨트롤러가 Pawn을 소유할 때 호출.
    • 예시: 카메라 설정, 소유권에 따른 초기화 작업.
  • Event Unpossessed (Pawn 전용)
    • 플레이어 컨트롤러가 Pawn의 소유를 해제할 때 호출.
    • 예시: 컨트롤러 해제 후 동작 설정.

 

3. 액터 종료 및 정리

  • Event EndPlay
    • 액터가 제거되기 직전에 호출.
    • 리소스 정리나 최종 작업을 수행하는 데 적합.
    • 예시: 타이머 정리, 다른 액터와의 연결 해제.
  • Event Destroyed
    • 액터가 완전히 제거된 후 호출.
    • 완전한 소멸 이후의 후속 작업이 필요할 경우 사용.

 

4. 실행 순서 요약

  1. Construction Script
  2. Event BeginPlay
  3. Event Tick (게임 중 매 프레임)
  4. Event EndPlay
  5. Event Destroyed

 

* 추가 팁

  1. Performance Best Practice
    • Event Tick에 무거운 연산을 넣지 말고, 필요 시 타이머(Set Timer by Function Name)를 활용하여 특정 간격으로만 로직을 실행하는 것이 좋다.
  2. Blueprint 또는 C++로 구현
    • 위 이벤트들은 블루프린트와 C++ 모두에서 구현 가능.
    • 간단한 로직은 블루프린트에서 처리하고, 성능 최적화가 필요한 경우 C++을 활용하는 것이 좋다.
반응형