[Unreal]#생명 주기 함수

2024. 7. 24. 12:34· 게임개발/Unreal C++
목차
  1. #1. 생명 주기 함수
  2. 1. 개념
  3. #2. Game Instance
  4. 1. 생명 주기 함수
  5. #3. Player Controller
  6. 1. 생명 주기 함수
  7. #3. Actor&Actor Component
  8. 1. 생명 주기 함수
  9. #4. 순서
  10. 1. GameInstance, Subsystem
  11. 2. Player Controller & Actor(Character)
  12. 3. Actor Component

 

#1. 생명 주기 함수

 

1. 개념

Unreal Engine에서 생명 주기 함수는 객체의 생성부터 소멸까지 특정 시점에 자동으로 호출되는 함 들입니다. 특히, 이들은 초기화, 갱신, 정리 등 객체의 상태 관리에 중요한 역할을 합니다. 객체의 생명 주기를 크게 세 가지로 나눌 수 있습니다-(1) 초기화 단계, (2) 실행 단계, (3) 종료 단계. 아래 정리한 내용은 일반적인 상황의 경우이며, 특정 상황에 따라 약간의 변동이 존재합니다.

 


 

#2. Game Instance

 

1. 생명 주기 함수

  • Init() : 게임 인스턴스가 생성될 때 호출됩니다. 게임 전체에 걸친 초기화 작업에 사용됩니다.
  • Subsystem::Initialize() : 각 Subsystem의 초기화 작업이 이루어집니다.
  • OnStart() : 첫 번째 월드가 로드된 후 호출됩니다. 게임 시작 시 필요한 추가 설정 수행할 수 있습니다.
  • OnWorldChanged() : 현재 월드가 변경될 때 호출됩니다. 월드 전환에 필요한 처리를 수행할 수 있습니다.
  • Shutdown() :게임이 종료될 때 호출됩니다. 게임 전체 리소스 정리에 사용됩니다.

 


 

#3. Player Controller

 

1. 생명 주기 함수

  1. InitializeComponent() : 컴포넌트 초기화 시 호출됩니다.  
  2. PostInitializeComponent() : 모든 컴포넌트의 초기화 작업 완료 후 호출됩니다. 
  3. SeupInputComponent() : 입력 설정을 위해 호출됩니다. 키 바인딩 등 입력 관련 설정을 수행합니다.
  4. BeginPly() : 게임 시작 시점에 호출됩니다. 
  5. OnPosssess()/AcknowledgePossession() : Player Controller가 Pawn을 소유하게 되는 시점에 호출됩니다.
  6. OnUnPossess/AcknowledgeUnPossession() : Player Controller가 Pawn의 제어를 잃게 되는 시점.
  7. EndPlay() : Player Controller가 게임에서 제거될  호출됩니다.
  8. Destroyed() : Player Controller 객체가 파괴될 때 호출됩니다. 

 


 

#3. Actor&Actor Component

 

1. 생명 주기 함수

  1. AActor::PreregisterAllComponents() : 컴포넌트 등록 전에 호출됩니다.
  2. UActorComponent::OnRegister() : 각 컴포넌트의 등록 시점에 호출됩니다.
  3. AActor::PostRegisterAllComponents() : 모든 컴포넌트 등록 후에 호출됩니다.
  4. AActor::PostLoad() : 액터가 로드된 후 호출됩니다.(Save Game으로부터 로드될 경우)
  5. AActor::OnConstruction() : 에디터에서 액터가 생성되거나, 수정될 때 호출됩니다.
  6. UActorComponent::InitializeComponent() : 각 컴포넌트의 초기화 시 호출됩니다.
  7. AActor::PostInitializeComponent() : 모든 컴포넌트가 초기화 된 이후에 호출됩니다. 
  8. BeginPlay() : 게임 플레이 시작시 호출됩니다.
  9. EndPlay() : 게임 플레이 종료 시점에 호출됩니다. 

 


 

#4. 순서

 

1. GameInstance, Subsystem

Game Instance는 게임 시작 시점에 가장 먼저 생성됩니다. 이와 동시에 Subsystem들의 생성 및 초기화 작업이 진행됩니다.

 

2. Player Controller & Actor(Character)

Player Controller와 Character 유형의 생성 및 초기화 작업은 어느 것이 먼저라고 설명하기 어렵습니다. 따라서, 서로 간의 의존성 작업(바인딩등의 작업)은 PlayreController의 경우 OnPossess/AcknoledgePossession에서, 그리고 Actor의 경우 PossessedBy에서 수행합니다.

 

3. Actor Component

Actor Component의 초기화 작업은 InitializeComponent()에서 수행하며, Actor에 속한 모든 Component의 초기화 작업이 완료되는 시점에 AActor::PostInitializeComponent()가 호출됩니다. 따라서, 같은 Actor(ACharacter)에 속한 Component 간 의존성 작업들은 모두 AActor::PostInitializeComponent()에서 수행하는 것이 적절합니다.

 


 

 

 

 

저작자표시 (새창열림)

'게임개발 > Unreal C++' 카테고리의 다른 글

[Unreal]#Delegate, Event, Delegate vs Event  (0) 2024.07.30
[Unreal]#스마트 포인터  (0) 2024.07.30
[Unreal]#UBlueprintAsyncActionBase  (0) 2024.07.01
[Unreal]#27_Actor 클래스 vs Character 클래스  (0) 2024.06.25
[Unreal_Tip]#2_상위 클래스의 컴포넌트를 사용자 정의 하위 클래스로 변경하는 방법  (0) 2024.04.10
  1. #1. 생명 주기 함수
  2. 1. 개념
  3. #2. Game Instance
  4. 1. 생명 주기 함수
  5. #3. Player Controller
  6. 1. 생명 주기 함수
  7. #3. Actor&Actor Component
  8. 1. 생명 주기 함수
  9. #4. 순서
  10. 1. GameInstance, Subsystem
  11. 2. Player Controller & Actor(Character)
  12. 3. Actor Component
'게임개발/Unreal C++' 카테고리의 다른 글
  • [Unreal]#Delegate, Event, Delegate vs Event
  • [Unreal]#스마트 포인터
  • [Unreal]#UBlueprintAsyncActionBase
  • [Unreal]#27_Actor 클래스 vs Character 클래스
Hardii2
Hardii2
Hardii2
개발 블로그
Hardii2
전체
오늘
어제
  • 분류 전체보기
    • 알고리즘
    • 웹 개발
      • Node.js
      • React
    • 게임개발
      • DirectX12
      • 관련 지식
      • Unreal C++
      • Unreal 블루프린트
    • 언어
      • Effective C++
      • Basic C++
      • 디자인 패턴
      • 자료구조
      • 기술 질문
    • 문제 풀이
      • BOJ 문제 풀이
      • Programmers 문제 풀이
      • geeksForgeeks 문제 풀이
    • 수학
      • 확률과 통계
      • 게임수학
    • 개인프로젝트
    • 그룹프로젝트
      • PM
      • Dev
    • Github

블로그 메뉴

  • 홈
  • 글쓰기

공지사항

인기 글

태그

  • programmers
  • DP
  • unreal
  • BOJ
  • BFS
  • 그래프
  • stl
  • 디자인 패턴
  • set
  • 우선순위 큐
  • Effective C++
  • 개발
  • 기술 질문
  • 알고리즘
  • 최단 경로
  • 정렬
  • 트리
  • dfs
  • C++
  • Unreal Blueprint

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Hardii2
[Unreal]#생명 주기 함수
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.