tl;dr: special effect assets are loading asynchronously. This is bad. How do I load these files at the same time the Level loads?
I wrote better details below. Thanks in advance to anyone that can help!
Background:
I’m creating a Plugin that reorganizes special effects into a special UClass I wrote. This makes them more designer-friendly, (there’s more features I want to keep quiet, though).
Problem:
But these assets are loading asynchronously (i.e. at runtime), and that is bad when they’re fired by an AnimNotifyState. The effect might load after NotifyEnd(…) runs, so I need to figure this out.
Solution:
So, I want these all loaded during the startup process, when the level loads.
Implementation:
I have no idea how to do this. My current guess is, I override PostLoad() in the GameModeBase class. I wrote code to find all AActors that own a copy of the Plugin’s Component, and copy the TSoftObjectPtrs each sound and particle effect that can be fired. And then I was hoping to make a call from the UAssetManager, but I think those are all Asynchronous, too.
I do not know the first thing about loading assets during the level load, and the documentation for asset management is incredibly complicated. Can anyone help me solve this problem?