UE4 使用UAssetManager进行资源的异步加载

  1. 加载资源的主要代码
    void AMyAssetLoadManager::DoAsyncLoadAssetList()
    {
    UAssetManager &AssetManager = UAssetManager::Get();
    auto delegaet = FStreamableDelegate::CreateUObject(
    this,
    &AACAssetLoadManager::OnLoadAssetsFinished
    );

    m_StreamableHandle = AssetManager.LoadAssetList(
    AssetList,
    delegaet
    );
    isAssetLoading = true;
    }

  2. 资源卸载:
    void AMyAssetLoadManager::ReleaseAllAssets()
    {
    if (m_StreamableHandle)
    {
    m_StreamableHandle->ReleaseHandle();
    }
    }

  3. 资源理解:通过UAssetManager进行资源加载后,调用LoadSynchronous()进行具体使用TSoftObjectPtr声明的资源,UE4 使用UAssetManager进行资源的异步加载
    将会不进if判断内,说明异步加载成功