본문으로 바로가기

[Unreal Engine 5] Asset Manager

category UnrealEngine/기능 2023. 10. 1. 00:51

언리얼 엔진에는 AssetManager 이라는 Singleton 클래스가 있다.

엔진이 초기화 될 때 제공되며, 에셋 정보를 요청해서 받아낼 수 있다.

특정 태그를 가진 모든 에셋 목록을 가져올 수 있다.

 

AssetManager를 통해서 타입들을 수집해달라고 요청해야 한다.

Project SettingsAsset Manager를 확인하자

 

Asset Base Class는 수집될 타입이다.

Directories 는 수집될 타입들이 모여있는 Directory를 지정해주면 된다.

 

이제 AssetManager에 데이터가 수집되기전, 해당 Asset Id를 재정의하여 알려주어야 한다.

첫 번째 인자는 Tag (우리가 Project Settings에서 지정한 Primary Asset Type)

두 번째 인자는 Asset Name 이다. 대부분은 GetFName()을 넣으면 처리된다.

 

모든 엔진이 초기화 되고, BeginPlay가 불리기 마지막 시점인 PostInitializeComponents에서 처리한다.

UAssetManagerGetPrimaryAssetIdList를 통해 우리가 지정한 Tag의 목록들을 가져올 수 있다.

이를 UAssetManager에서 가져다 쓰면 된다.

 

UAssetManagerFEngineLoopPreInit 때 (PreInitPostStartupScreen) UClassCreateDefaultObject에 의해 생성된다.

초기화는 Global Engine의 Init때 InitializeObjectReferences() 에서 처리되며

우리가 Project Settings에서 AssetManager에 데이터를 추가할때는 동적으로 추가된다.