언리얼 엔진에는 AssetManager 이라는 Singleton 클래스가 있다.
엔진이 초기화 될 때 제공되며, 에셋 정보를 요청해서 받아낼 수 있다.
특정 태그를 가진 모든 에셋 목록을 가져올 수 있다.
AssetManager를 통해서 타입들을 수집해달라고 요청해야 한다.
Project Settings의 Asset Manager를 확인하자
Asset Base Class는 수집될 타입이다.
Directories 는 수집될 타입들이 모여있는 Directory를 지정해주면 된다.
이제 AssetManager에 데이터가 수집되기전, 해당 Asset Id를 재정의하여 알려주어야 한다.
첫 번째 인자는 Tag (우리가 Project Settings에서 지정한 Primary Asset Type)
두 번째 인자는 Asset Name 이다. 대부분은 GetFName()을 넣으면 처리된다.
모든 엔진이 초기화 되고, BeginPlay가 불리기 마지막 시점인 PostInitializeComponents에서 처리한다.
UAssetManager의 GetPrimaryAssetIdList를 통해 우리가 지정한 Tag의 목록들을 가져올 수 있다.
이를 UAssetManager에서 가져다 쓰면 된다.
UAssetManager는 FEngineLoop의 PreInit 때 (PreInitPostStartupScreen) UClass의 CreateDefaultObject에 의해 생성된다.
초기화는 Global Engine의 Init때 InitializeObjectReferences() 에서 처리되며
우리가 Project Settings에서 AssetManager에 데이터를 추가할때는 동적으로 추가된다.
'UnrealEngine > 기능' 카테고리의 다른 글
[Unreal Engine 5] Gameplay Ability System - 1 (0) | 2024.03.15 |
---|---|
[Unreal Engine 5] Singleton (0) | 2023.10.02 |
[Unreal Engine 5] Widget ( UI, 체력바 ) (0) | 2023.09.26 |
[Unreal Engine 5] 공격 판정 (0) | 2023.09.23 |
[Unreal Engine 5] Animation Montage (0) | 2023.09.21 |