UE4 使用UAssetManager进行资源的异步加载
-
加载资源的主要代码
void AMyAssetLoadManager::DoAsyncLoadAssetList()
{
UAssetManager &AssetManager = UAssetManager::Get();
auto delegaet = FStreamableDelegate::CreateUObject(
this,
&AACAssetLoadManager::OnLoadAssetsFinished
);m_StreamableHandle = AssetManager.LoadAssetList(
AssetList,
delegaet
);
isAssetLoading = true;
} -
资源卸载:
void AMyAssetLoadManager::ReleaseAllAssets()
{
if (m_StreamableHandle)
{
m_StreamableHandle->ReleaseHandle();
}
} -
资源理解:通过UAssetManager进行资源加载后,调用LoadSynchronous()进行具体使用TSoftObjectPtr声明的资源,
将会不进if判断内,说明异步加载成功