[Unreal] 게임 실행 프로세스
언리얼 엔진에서 게임은 BeginPlay가 호출되기 전까지 에디터와 독립형 모드 사이에 차이점이 있습니다.
아래 이미지를 확인했을 때 일부 호출되는 함수와 순서가 다른 것을 볼 수 있습니다.
엔진 시작 및 게임 실행 프로세스에 대한 설명 문서입니다. 여기서 보여드리는 방법은 크게 두 가지, 에디터 방법과 독립형 방법입니다. 일반적인 이벤트 순서는, 엔진을 초기화시키고,
GameInstance
를 생성 및 초기화한 뒤, 레벨을 로드하고, 마지막으로 플레이를 시작합니다. 하지만 독립형 모드와 에디터 모드 사이의 차이점이 있는데, 일부 함수가 호출되는 정확한 순서와, 어떤 함수가 호출되는지가 다릅니다. 아래 플로우 차트는 두 방법으로 병렬 실행했을 때 게임 시작 전 수렴할 때까지의 흐름을 보여줍니다.
에디터에서는 사용자가 Play 버튼을 누르기 전에 Init 함수와 Start 함수가 호출되는 반면 독립형에서는 실행 시 호출 되는 것을 볼 수 있습니다.
이 흐름을 볼 때 언리얼 엔진을 이용한 콘텐츠를 제작 시 호출 순서를 고려하여 제작해야 한다는 것을 알 수 있습니다.
독립형
독립형 모드는, 에디터 외부에서 플레이하는 게임 모드로, 시작시 엔진 초기화에 이어 바로 게임 플레이에 필요한 오브젝트가 생성 및 초기화됩니다. GameInstance 와 같은 오브젝트는 (Engine 생성 및 초기화와 별개로) 엔진 시작 전 생성 및 초기화되며, 엔진의 시작 함수 호출 직후 시작 맵이 로드됩니다. 공식적으로 게임플레이가 시작되는 시점은, 레벨이 적합한 게임 모드와 게임 스테이트 에 이어 다른 액터 를 생성한 이후입니다.
에디터
에디터 모드는 에디터에서 플레이 와 에디터에서 시뮬레이트 에서 사용되며, 다른 흐름으로 실행됩니다. 엔진은 에디터 실행에 필요하므로 즉시 초기화 및 시작되나, GameInstance 와 같은 오브젝트의 생성 및 초기화는 사용자가 버튼을 눌러 PIE 또는 SIE 세션을 실행할 때까지 연기됩니다. 추가로 레벨의 액터 를 복제하여 에디터의 레벨에 영향을 끼치도록 하고, GameInstance 를 포함한 모든 오브젝트는 각 PIE 인스턴스마다 별도의 사본을 갖습니다. UWorld 클래스의 게임플레이 시작과 함께 에디터 방법과 독립형 방법의 재회가 이루어집니다.
'Unreal > Manual' 카테고리의 다른 글
Unreal C++ 위젯(UserWidget) 버튼 클릭 이벤트 (Button OnClick Event) (0) | 2023.12.11 |
---|---|
Unreal 액터(Actor)의 생명 주기(Life Cycle) (0) | 2023.12.10 |
Unreal Widget 정렬, 칸 맞추기 (0) | 2023.12.10 |
Unreal C++ BoxComponent BoxSize 변경 (0) | 2023.12.08 |
Unreal C++ Component BeginOverlap, EndOverlap 구현 (1) | 2023.12.02 |