본문 바로가기
Unreal Engine/[Inflearn_rookiss] UE5 Lyra 분석

3. Experience Actor Spawn

by 헛둘이 2024. 9. 29.

Experience는 Primary Data Asset를 상속 받아 만들었으며, 이 데이터 타입은 AssetManager를 통해서 쉽게 로드가 가능합니다.

Project Settings 창에서 Asset Manager가 Scan할 데이터를 등록할 수 있습니다.

여기서 Scan이란, 해당 에셋을 바로 메모리에 올리는 것이 아닌 '이 에셋이 여기에 있다' 정도만 인지하는 수준으로 보는 것이 맞습니다.

 

- Asset Base Class는 해당 클래스를 의미하며, Primary Asset Type도 오타가 나지 않도록 정확히 기입해야 합니다.

- Specific Assets는 해당 에셋을 콕 집어서 Scan 한다는 것을 의미합니다.

- Directories는 해당 디렉토리를 집어주면, 그 디렉토리에 있는 에셋을 다 Scan 한다는 이야기입니다.

 

FSoftObjectPath와 비슷한 경우로 볼 수 있는데, 이 객체도 실제 경로에 있는 에셋을 로드하는 것이 아니고 주소만 들고 있다가, 필요 시 멤버함수를 통해 메모리에 올릴 수 있습니다.

 

이후에는 다른 Experience로 이동하는 Portal를 Spawn하는 과정을 진행하였습니다.

Portal은 Blueprint Actor인 Experience3D가 Spawn하도록 하였고, 과정을 간략하게 요약하면,

 

멤버변수

 UserFacingExperienceList

- UserFacingExperience의 배열, UserFacingExperience는 Map과 Experience를 소유

 

TeleportToUserFacingExperience

- BlueprintActor, 캡슐충돌체와 Static Mesh를 컴포넌트로 지니며, 충돌 시 플레이어를 다른 Experience로 전송

 

1. UserFacingExperience 배열을 Clear

2. Primary Asset Id List를 가져온다.(에셋 매니저에 세팅되어 있어야 함)

3. List를 Async Load 때린다 (비동기 로딩)

4. For each로 순회하며 타입을 HmUserFacingExperience로 변환하여 UserFacingExperienceList 배열에 추가한다.

5. 로딩이 끝나면 다시 For each를 돌며 해당 데이터를 순차적으로 TeleportToUserFacingExperience에 추가한 후 Spawn한다.

 

'Unreal Engine > [Inflearn_rookiss] UE5 Lyra 분석' 카테고리의 다른 글

6. InitState  (0) 2024.10.03
5. Experience Loading Complete  (0) 2024.10.02
4. Experience Manager Component  (1) 2024.09.30
2. Experience  (0) 2024.09.28
1. Reflection, TSubclassOf 기본 개념  (1) 2024.09.26

댓글