Question on how to spawn Player at a specific point

Some points explaining what you are seeing:

  • when you load a scene, EVERYTHING else is gone from the previous scene, except stuff marked as DontDestroyOnLoad (DDOL). This likely explains your Missing Reference.

  • you can mark your player as DDOL but this isn’t a great approach…

  • generally it is better to keep only a GameManager around (eg, only mark that as DDOL), and it is the repository of where to spawn the player.

Then when you load a scene, the old player gets naturally destroyed and your new scene should be responsible for spawning a new fresh player.

Make sure that GameManager NEVER retains references to things that are not also marked as DDOL.

Another way to pull this off is by additively loading scenes.

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 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: