Currently I’m using UE 4.9.2, async level streaming working correctly without hitch.
However, Once I invoke StaticLoadObject during streaming, main tick will freeze for a few seconds until
the current streaming level being completely loaded .
I found it’s because of the following:
void BeginLoad()
{
...
FlushAsyncLoading();
...
}
Every StaticLoadObject will make async loading objects being loaded in one frame on main thread,
and causing hitch.
Thus, Level streaming in async thread will result in a few second freeze.
How to avoid this? (we can’t afford to change all StaticLoadObject to AsyncLoad)
In my opinion there can be 2 ways:
-
Not to flush async loading in StaticLoadObject.
What will happen if engine make such change? -
else, level streaming could break a single umap loading task to several small piece,
then we don’t need to wait for seconds loading whole map.
Any suggestion?