Additive scene loading is great, but you MUST UNDERSTAND THE TIMING. You can read about it all you like but there’s no substitute for putting in your own Debug.Log() to see what happens and when it happens.
Here’s some more notes:
https://discussions.unity.com/t/820920/2
https://discussions.unity.com/t/820920/4
https://discussions.unity.com/t/824447/2
A multi-scene loader thingy:
https://pastebin.com/Vecczt5Q
My typical Scene Loader:
https://gist.github.com/kurtdekker/862da3bc22ee13aff61a7606ece6fdd3
Other notes on additive scene loading:
https://discussions.unity.com/t/805654/2
Timing of scene loading:
https://discussions.unity.com/t/813922/2
Also, if something exists only 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 prefab and the scene, leading to many possible errors and edge cases.
Two similar examples of checking if everything is ready to go:
https://discussions.unity.com/t/840487/10
https://discussions.unity.com/t/851480/4
Fix that soonest or it will impede your progress.
Simple Singleton (UnitySingleton):
Some super-simple Singleton examples to take and modify:
Simple Unity3D Singleton (no predefined data):
https://gist.github.com/kurtdekker/775bb97614047072f7004d6fb9ccce30
Unity3D Singleton with a Prefab (or a ScriptableObject) used for predefined data:
https://gist.github.com/kurtdekker/2f07be6f6a844cf82110fc42a774a625
These are pure-code solutions, do not put anything into any scene, just access it via .Instance!
If it is a GameManager, when the game is over, make a function in that singleton that Destroys itself so the next time you access it you get a fresh one, something like:
public void DestroyThyself()
{
Destroy(gameObject);
Instance = null; // because destroy doesn't happen until end of frame
}
There are also lots of Youtube tutorials on the concepts involved in making a suitable GameManager, which obviously depends a lot on what your game might need.
FINALLY, here is some timing diagram help:
https://docs.unity3d.com/Manual/ExecutionOrder.html