Работа с Asset в UE
Референсы ассета
Каждый ассет использует какие-либо другие ассеты и сам является используемым. Если необходимо получить данные об этом - существует следующий код:
auto& assetRegistry = FModuleManager::LoadModuleChecked<FAssetRegistryModule>("AssetRegistry").Get();
TArray<FAssetDependency> linksToAsset;
assetRegistry.GetDependencies({ ObjectToLint->GetOutermost()->GetFName() },
linksToAsset,
UE::AssetRegistry::EDependencyCategory::Package,
UE::AssetRegistry::EDependencyQuery::NoRequirements);
//{ ObjectToLint->GetOutermost()->GetFName() } - важно именно так давать ассет
GetDependencies
- аcсеты которые проверяемый ассет использует.
GetReferencers
- ассеты которые используют проверяемый ассет.
Получение UPackage ассета
UPackage
- основная единица десериализации\сериализации любого ассета. По сути это Инфа о ассете, которая хранится на диске.
ObjectToLint->GetOutermost();
TArray<FReferencerInformation> OutInternalReferencers;
TArray<FReferencerInformation> OutExternalReferencers;
ObjectToLint->GetOutermost()->RetrieveReferencers(&OutInternalReferencers, &OutExternalReferencers);
Через это так же можно получить, например, ссылки на ассет. Но увы они буду валидны лишь в рантайме. Т.е как только новая ссылка появится - она будет выводиться. Но после перезагрузки проекта - нет.
Last updated
Was this helpful?