My player is not spawning at right position. I am facing this problem only in 1 scenario.
Scene 0, Portal A to Scene 1, Portal A → works fine
Scene 1, Portal A to Scene 0, Portal A → works fine
Scene 0, Portal B to Scene 1, Portal B → works fine
Scene 1, Portal B to Scene 0, Portal B–> player spawns at a different position than the spawn point.
I tried recreating portal and spawn positions at different locations thinking that the terrain might be causing some local problem but that is not the case.
First things first, are there any error messages when you transition from 1B to 0B?
Post a screenshot of your Portal B along with the inspector and we’ll see if there is anything obvious.
I’ve had the same issue where 3 out of 4 transitions would work, while the fourth one would transport me to a pretty random location, between the scene’s original player location and the portal’s spawnpoint.
What I did, that might work for you, is the following:
In UpdatePlayer(), after getting a reference to the player, I disabled the NavMeshAgent (before changing the player’s transform) and enabled it again at the end of the function, like so:
And those two extra lines did wonders for me. Hope it works for you too
Thanks @HyperLucario, that did the job for me as well!
Now, I am wondering what is going behind the scenes which affects only one transition and not the others?
I’m not exactly sure what causes this, I tested a few things and noticed that if the destination portal’s spawnpoint si too far away from the initial position of the player in the destination scene, Unity places the player somewhere in-between the two points. If I had to guess, the NavMeshAgent might have some ways to prevent instant travel across large distances, but that is pure speculation. I’d love to know the real answer too!
@HyperLucario , your observation is right. I noticed it too that the spawn position was somewhere in the middle of the initial position and the spawn position.
I believe temporarily disabling the NavMeshAgent is mentioned in the course videos. This is because without disabling it, moving the player can be inconsistent.