Unreal Engine/[Inflearn_rookiss] UE5 Lyra 분석

4. Experience Manager Component

헛둘이 2024. 9. 30. 11:47

오늘 실습한 내용은 GameState Component에 관한 내용입니다.

Component 패턴은 기존 DX3D 프로젝트에서 자주 사용할 정도로 애용했던 방식인데요.

Actor에 컴포넌트를 붙여서 기능 확장 및 제거에서 유연하게 대처할 수 있기 때문에 이점이 있다고 생각합니다.

 

Lyra 프로젝트에서는 Component 패턴을 사용하였고, GameState에도 여러 컴포넌트를 붙여서 기능을 확장했습니다.

오늘 붙인 컴포넌트는 Experience Manager Component이고, 이 컴포넌트는 Experience 로드를 담당하는 컴포넌트입니다.

 

마찬가지로 이전 D3D 프로젝트에서 상태 패턴에서 사용되는 변수 구조와 흡사하여 이해하는데 어려움은 없었습니다.

1. 현재 상태를 들고 있는 변수 (CurrentExperience)

2. Experience가 로딩되었는지를 알려주는 Enum Class (ExperienceLoadState)

3. 로드되면 실행할 Delegate (OnExperienceLoaded)

 

Delegate에 대한 개념은 이해했지만 사용해보지 않아 아직 낯설게 느껴지는 부분들이 있지만, 강의가 진행되며 실습하고 나면 나아질 부분이라고 생각합니다.

 

그 외 GameModeBase에서 InitGame()이 호출되는 시점이 너무 이른 시점이라,

GetWorld()->GetTimerManager()에서 SetTimerForNextTick(this, &ThisClass::멤버함수)와 같이 다음 프레임에 실행할 함수를 등록하고 사용할 수 있다는 것이 편리한 부분이라고 생각했습니다.

 

이번 Experience 내용은 상당히 방대하여 다음 포스팅에서는 내용을 모두 정리한 후 업로드하도록 하겠습니다.