First up, please check out this post for code formatting:
As for your problem, there’s a few different ways to handle inter-scene transitions with specific destinations.
The easiest is to have a named object in the scene where you want the player to spawn, and then your scene transition code is a coroutine (gotta put it in a common singleton object that lives forever with DontDestroyOnLoad() so that the coroutine keeps going!) that does this:
- loads the new scene (could be loaded asynchronously too)
- yields until the scene is loaded (this will be at least one frame!)
- does a GameObject.Find() to locate the spawn-in point
- teleports the player to this point (or respawns him afresh there)
That works for both sides of the equation: world into bunker, and bunker back into world.
It gets a bit more complicated when you want to reuse the same bunker in multiple places in the world, and have it put you back in the right place, not just at one of the bunker locations.
To accommodate this without making many named copies of your bunker, generally you have another type of special link name that says “go to the previous scene precisely where I left it,” and use that for exiting bunkers.
Then it is up to you to record this previous departure point, perhaps keeping them in a stack, or just a list.