Might be a feature or issue, but when I use async loading in the engine (with editor) I get assert saying:
AssetImportData /Game/BulletImpactVFX/BulletHitVFX_SFX/CTextures/T_SmokeSoft_01.T_SmokeSoft_01:AssetImportData (Outer=Texture2D /Game/BulletImpactVFX/BulletHitVFX_SFX/CTextures/T_SmokeSoft_01.T_SmokeSoft_01, Flags=0x00083408)
I digged this further with debugger and it seems to async loading is loading a particle system with emitters. In the emitters there are multiple materials used which use some of the same textures. The error comes from one of the shared textures.
Call stack is as follows:
Assert happens in UObjectGlobals.cpp:
In the async loading thread i can see 13 items being async loading one by one. The failed one is at 88% and others 0%.
Emitter is implemented as follows. The failure happens on loading the last emitter. Emitters HitDust, BurningPiecesSmoke and PlasticSmoke use different materials but these share the same texture which fails:
The problematic data seems to be editor only data related to the texture. I didn’t test whether it happens builds without editor.
I load assets asyncronously with StreamableManager and all other objects work just fine:
StreamableManager.RequestAsyncLoad(Objects, FStreamableDelegate::CreateUObject(this, &USingletonManager::ObjectLoadedCallback), 10, false, LoadDelayed);