|
Payback 0.0.1
CK Graduation Project
|
#include <DataAssetManager.h>


Public 멤버 함수 | |
| UDataAssetManager () | |
| virtual void | StartInitialLoading () override |
| template<typename GameDataClass > | |
| const GameDataClass & | GetOrLoadTypedGameData (const TSoftObjectPtr< GameDataClass > &DataPath) |
| template<typename GameDataClass > | |
| TArray< const GameDataClass * > | GetAllTypedGameData () const |
정적 Public 멤버 함수 | |
| static UDataAssetManager & | GetInstance () |
| UDataAssetManager 싱글턴 인스턴스를 반환합니다. | |
| template<typename TData > | |
| static TData * | GetAssetByType () |
| template<typename TData > | |
| static TArray< TData * > | GetAllAssetsByType () |
| template<typename TData > | |
| static void | LoadAllPrimaryAssetsAsyncInPath (const FString &FolderPath, FAsyncBatchLoadCompletedDelegate CompletedDelegate=FAsyncBatchLoadCompletedDelegate()) |
| 지정한 폴더 경로에서 TData 타입의 에셋을 비동기로 일괄 로드합니다. | |
| static void | LoadAsyncByPath (const FSoftObjectPath &AssetPath, FAsyncLoadCompletedDelegate CompletedDelegate=FAsyncLoadCompletedDelegate()) |
| 소프트 오브젝트 경로로 에셋을 비동기 로드합니다. | |
| static void | LoadAsyncByName (const FName &AssetName, FAsyncLoadCompletedDelegate CompletedDelegate=FAsyncLoadCompletedDelegate()) |
| Primary Asset 이름으로 에셋을 비동기 로드합니다. | |
| static UObject * | SynchronousLoadAsset (const FSoftObjectPath &AssetPath) |
| 소프트 오브젝트 경로로 에셋을 동기 로드합니다. | |
Protected 멤버 함수 | |
| template<typename TData > | |
| const TData & | GetOrLoadTypedGameData (const TSoftObjectPtr< TData > &DataPath) |
| template<typename TData > | |
| TArray< const TData * > | GetAllTypedGameData () const |
| void | OnUpdateLoadPercentage (float Percentage) |
| virtual void | TryCreateLoadJobForDataAsset (TSoftObjectPtr< UPrimaryDataAsset > DataPath, FString JobName) |
| UPrimaryDataAsset * | LoadGameDataOfClass (TSubclassOf< UPrimaryDataAsset > DataClass, const TSoftObjectPtr< UPrimaryDataAsset > &DataClassPath, FPrimaryAssetType PrimaryAssetType) |
| 지정한 클래스 타입의 게임 데이터 에셋을 동기 로드하고 GameDataMap에 등록합니다. | |
Protected 속성 | |
| TSoftObjectPtr< IDataAssetBundle > | InitialBundlePath |
| TMap< TObjectPtr< UClass >, FGameDataAssetList > | GameDataMap |
| FDataAssetJobManager | JobManager |
Private 속성 | |
| TMap< FName, FSoftObjectPath > | PrimaryAssetNameCache |
| UDataAssetManager::UDataAssetManager | ( | ) |
|
static |
GameDataMap에서 TData 타입의 모든 에셋을 반환합니다.

|
protected |
| TArray< const GameDataClass * > UDataAssetManager::GetAllTypedGameData | ( | ) | const |
|
static |
GameDataMap에서 TData 타입의 첫 번째 에셋을 반환합니다. 없으면 nullptr.

|
static |
UDataAssetManager 싱글턴 인스턴스를 반환합니다.
GEngine->AssetManager를 UDataAssetManager로 캐스팅하여 반환합니다. DefaultEngine.ini에 AssetManagerClassName이 올바르게 설정되어 있어야 합니다.

| const GameDataClass & UDataAssetManager::GetOrLoadTypedGameData | ( | const TSoftObjectPtr< GameDataClass > & | DataPath | ) |

|
protected |
|
static |
지정한 폴더 경로에서 TData 타입의 에셋을 비동기로 일괄 로드합니다.
TData::StaticClass()->GetFName()을 PrimaryAssetType으로 사용하여 등록된 ID를 수집하고, FolderPath로 시작하는 PackagePath를 가진 에셋만 필터링합니다. 로드할 에셋이 없으면 빈 배열로 즉시 콜백합니다.
| FolderPath | 필터링할 패키지 경로 (예: "/Game/CK_UE/Core/Data/LevelData") |
| CompletedDelegate | 로드 완료 시 호출될 델리게이트 (로드된 UObject 배열 전달) |

|
static |
Primary Asset 이름으로 에셋을 비동기 로드합니다.
Asset Manager에 등록된 모든 Primary Asset 중 이름이 일치하는 항목을 탐색한 뒤 LoadAsyncByPath에 위임합니다. 동일한 이름이 여러 타입에 등록된 경우 첫 번째 매칭만 로드됩니다.
| AssetName | 로드할 에셋의 PrimaryAssetName |
| CompletedDelegate | 로드 완료 시 호출될 델리게이트 (에셋 이름, 로드된 UObject 전달) |

|
static |
소프트 오브젝트 경로로 에셋을 비동기 로드합니다.
FStreamableManager::RequestAsyncLoad를 사용하여 메인 스레드를 블로킹하지 않습니다. 로드 완료 시 CompletedDelegate가 게임 스레드에서 호출됩니다.
| AssetPath | 로드할 에셋의 소프트 오브젝트 경로 |
| CompletedDelegate | 로드 완료 시 호출될 델리게이트 (에셋 이름, 로드된 UObject 전달) |


|
protected |
지정한 클래스 타입의 게임 데이터 에셋을 동기 로드하고 GameDataMap에 등록합니다.
에디터 환경에서는 LoadSynchronous()를 사용하고, 런타임에서는 LoadPrimaryAssetsWithType()으로 스트리밍 후 WaitUntilComplete()로 대기합니다.
| DataClass | 로드할 게임 데이터의 UClass |
| DataClassPath | 로드할 에셋의 소프트 오브젝트 포인터 |
| PrimaryAssetType | Asset Manager에 등록된 Primary Asset 타입 |

|
protected |

|
overridevirtual |

|
static |
소프트 오브젝트 경로로 에셋을 동기 로드합니다.
Asset Manager가 초기화된 경우 StreamableManager를 통해 로드하고, 그렇지 않은 경우 TryLoad()로 폴백합니다.
| AssetPath | 로드할 에셋의 소프트 오브젝트 경로 |

|
protectedvirtual |


|
protected |
|
protected |
|
protected |
|
private |
StartInitialLoading에서 구축되는 이름 → 경로 캐시. LoadAsyncByName O(1) 조회에 사용됩니다.