Unreal Engine, 글로벌 Asset Manager 사용하지 않기
실제 사용할 예정인 에셋을 글로벌 Asset Manager 연결하여 임시적으로 사용했었다.
이제 이 에셋을 공용 Asset Manager 에서 관리하지 않고, 특정 데이터 에셋이 실행하면 에셋이 로딩되도록 할 것이다.

- 언리얼 에디터 Edit > Project Settings 열기
- Game - Asset Manager 메뉴 열기
- LyraExperienceDefinition 아래의 B_Experience_DebugGame 에셋을 꺽새를 눌러 제거 하기
- 해당 에셋은 임시 사용으로 이 곳에 두었다.
파일, 폴더 정리 - GameData 에셋 추가
에셋 정리 전 미리 에셋을 상속 받아 세워두는 용도로 몇 가지 만들거나 옮기도록 한다.
WarriorCore Content
├─WarriorCore
└─Data
├─Hero_WarriorGame
├─Input_Hero_Warrior
└─Game_WarriorGame (+)
Game_WarriorGame 에셋을 추가하도록 한다. 상속은 Lyra Game Data 이다.

- Data 폴더에 3개가 생겼다.
파일, 폴더 정리 - 폴더 정리 고도화
WarriorCore Content
├─WarriorCore
└─Data
├─Character (+)
│ └─Hero (+)
│ ├─Hero_WarriorGame (*)
│ └─Input_WarriorGame (*)
└─Game_WarriorGame
- Hero_WarriorGame 과 Input Hero Warrior 새로만든 Character > Hero 폴더로 이동하도록 한다.
WarriorCore Content
├─WarriorCore
└─Data
├─Character (+)
│ └─Hero (+)
│ ├─Pawn_Hero (*)
│ └─Input_Hero (*)
└─Game_WarriorGame
- 이름도 변경 해주도록 한다.
- Hero_WarriorGame > Pawn_Hero 으로 이름 변경
- Input_Hero_Warrior > Input_Hero 으로 이름 변경

PawnData 임시 에셋 추가
PawnData 이 없어서 실행이 안되어 테스트할 수 없으니 임시 파일을 만들도록 한다.
Lyra 공용 폴더에서 진행하도록 한다.
All
└─Content
└─System
└─PawnData (+)
- System 아래의 PawnData 를 만들도록 한다.

- Lyra Pawn Data 상속을 받은 데이터 에셋을 생성한다.
- DefaultPawnData 이름으로 변경한다.
- Ctrl + C 를 눌려 경로를 기억하도록 한다.
DefaultGame.ini 파일을 편집하여 추가한 DefaultPawnData를 등록하도록 한다.

- 방금 추가한 DefaultPawnData 정상적으로 가리키도록 편집하였다.
Game Core 에셋에 리소스 할당하기
이전 시간에 게임 시작 시 실행되도록 Game Feature의 Core 를 생성한 적이 있다. Core 실행 시 에셋들을 로딩되도록 해주도록 한다.
Core 위치
WarriorCore Content
└─WarriorCore (*)
해당 Core 데이터 에셋을 열어주도록 한다.

- Asset Manager 배열을 늘리면서 로딩하고 싶은 에셋들을 추가하도록 한다.
Game Core 에셋에 리소스 할당하기 - Map
특정 Map 에셋들을 로딩되도록 할 것이다. 에셋 위치는 Maps 폴더 전체를 가르키도록 할 것이다.
WarriorCore
├─Content
│ ├─WarriorCore
│ └─Maps (*)

- Asset Manager [+] 클릭하여 Primary Asset Types to Scan 객체 배열 늘리기
- Primary Asset Type: Map 식별자 지정
- Asset Base Class: World 클래스를 검색하여 지정
- Directories: 본인 디렉토리의 "/Maps" 폴더의 에셋들을 가르키도록 지정
Game Core 에셋에 리소스 할당하기 - Experience

- Asset Manager [+] 클릭하여 Primary Asset Types to Scan 객체 배열 늘리기
- Primary Asset Type: LyraExperienceDefinition
- Asset Base Class: LyraExperienceDefinition 클래스 지정
- Has Blueprint Classes: 캡처에는 누락되어있는데, 체크하도록 한다.
- Blueprint Claases 라는 것을 알려주지 않으면 VS 2022 에디터 구동 시 오류가 발생한다.
- VS 2022 경고 문구: "
[[2024.12.24-05.20.38:731][ 0]]LogOutputDevice: Error: Ensure condition failed: TypeData.Info.AssetBaseClassLoaded == BaseClass && TypeData.Info.bHasBlueprintClasses == bHasBlueprintClasses && TypeData.Info.bIsEditorOnly == bIsEditorOnly [File:D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\AssetManager.cpp] [Line: 926]
" - 오류 나는 이유는 Primary Asset ID 찾는 도중 Blueprint 에셋인데, 미체크로 인해 Cpp인 상속자 LyraExperienceDefinition 으로 스캔되고 Edit > Project Settings > AssetManager 자원과 충돌한 것이다.
- Directories: 배열 하나 추가 후 Experiences 지정
- Directories: 배열 하나 추가 후 System/Experiences 지정
Game Core 에셋에 리소스 할당하기 - UserFacingExperience
사용 예정되어 있는 에셋으로 미리 만들어두도록 한다.

- Primary Asset Type: LyraUserFacingExperienceDefinition 식별자로 입력
- Asset Base Class: LyraUserFacingExperienceDefinition 클래스로 지정
- Directories: 배열 하나 추가 후 Experiences 지정
Game Core 에셋에 리소스 할당하기 - ExperienceActionSet

- Primary Asset Type: LyraExperienceActionSet 식별자로 입력
- Asset Base Class: LyraExperienceActionSet 클래스로 지정
Game Core 에셋에 리소스 할당하기 - GameData
앞서 만든 Game_WarriorGame 에셋을 등록할 차례이다.

- Primary Asset Type: LyraGameData 식별자로 입력
- Asset Base Class: LyraGameData 클래스로 지정
- Specific Assets: 생성한 Game_WarriorGame 에셋을 선택한다.