I don’t think it’s possible to determine how much of a streamed level has loaded.
You can load it without showing it using the ‘should be visible’ bool, then show it and unload the other level.
I have a really simple ‘in between’ level I load ( kind of warp thing ) while the streaming takes place, it works pretty well.
It basically goes like this:
Disable input
Use a postprocess to distort the screen so the player can’t see clearly what’s going on
Load the warp level ( this is what the player sees )
Unload the current level
Start loading next level
Loop checking with IsLevelLoaded ( on the new level )
Unload the warp level
Loop until we can see the player start ( level not loaded enough until then )
Spawn player at player start
Enable input
Phase out post process effect
It looks like this: