SceneManager.LoadSceneAsync() is unloading scenes when called

By default loading a scene, async or otherwise, unloads ALL other scenes.

This is just Unity’s core behavior and has always been.

You need to supply the second argument telling to load this scene additively.

Here’s more:

Additive scene loading is one possible solution:

A multi-scene loader thingy:

My typical Scene Loader:

Other notes on additive scene loading:

Timing of scene loading:

Also, if something exists only once in one scene, DO NOT MAKE A PREFAB out of it. It’s a waste of time and needlessly splits your work between two files, the ` and the scene, leading to many possible errors and edge cases.

Two similar examples of checking if everything is ready to go: