I am trying to halt my level scenes from fully loading until I press a button to start the level but for some odd reason when I call LoadSceneAsync on my Additive levels and set those operations' allowSceneActivation value to false, it STILL loads the scene regardless. Why does this happen?
public IEnumerator StartNewLevel() { _sceneCounter = 0; SceneField startScene = LevelSceneGroup.StartScene; SceneField firstWave = LevelSceneGroup.LevelScenes[_sceneCounter++]; AsyncOperation startSceneOperation = SceneManager.LoadSceneAsync(startScene, LoadSceneMode.Additive); startSceneOperation.allowSceneActivation = false; AsyncOperation firstWaveSceneOperation = SceneManager.LoadSceneAsync(firstWave, LoadSceneMode.Additive); firstWaveSceneOperation.allowSceneActivation = false; //need to load 1st wave of level as well while (!firstWaveSceneOperation.isDone && !startSceneOperation.isDone) { Debug.Log(firstWaveSceneOperation.progress); Debug.Log(startSceneOperation.progress); yield return null; } } It loads only for one frame it seems and then the scenes immediately activate based on the console logs: 
I have a button to start the loading of the scenes in the main menu. Another button is supposed to appear that will start the actual level and activate all of the scenes.
Before start of load:
After start of load; notice how Level1_start and Level1_wave are complete instead of loading despite allowSceneActivation set to false:


StartNewLevelwith a coroutine, right? \$\endgroup\$startSceneOperation.allowSceneActivation = false;should also preventstartSceneOperation.isDonefrom becoming true. The actual way to check if the scene was loaded completely isif (startSceneOperation.progress >= 0.9f). Knowing this does of course not solve your current problem, but it might help you to fix the next one. \$\endgroup\$