- Home /
Enter/exit buildings spawn
Hello good people, Ive looked around for an answer to this for a while not but with no luck.
Ive already got my player being sent to another scene when close enough to the outside door and when E has been pressed, this works the other way round, the door in the building leads back to the outdoor scene. However I cannot control where the player spawns in each scene (should be by the door) instead it spawns where it was placed in the editor. Can someone help me out with this?
Answer by DimitriUK · Jun 28, 2014 at 04:41 PM
Hi Blink,
Are you using a LoadLevelAdditive? If so, you can look for a teleport gameObject script.
The way this works is by teleporting your parent object "First Person Controller" or whichever you are using to the desired location.
If you are using a LoadLevelSync, you could simply have him starting from outside the door.
Personally me, I would use the teleport script as it would require more time and effort to change each scene everytime he walks in and out of a building.
Let me know if this helps.
I done some research, and amended a script
function OnTriggerEnter(other : Collider)
{
if (other.gameObject.name == "First Person Controller") {
other.transform.position = ...position you want to teleport to goes here...;
}
}
So I'm assuming when you go to the door, you have a trigger area, so if the user preses E, the trigger activates, unless you are using raycasting. But with this script, if you just edit it a bit and then add something like if(Input.GetKey("e")) { inside it, you may get what you were after.
Let me know if that goes well.
Hey, I forgot to explain I have many different buildings which can all be entered meaning there would be many different spawning positions when exiting these buildings (scenes). Would it be possible to use empty gameobjects as the spawn locations ins$$anonymous$$d?
Answer by koray1396 · Jun 28, 2014 at 10:55 PM
Create an array of Vector3, assign spawn points for corresponding scene indexes. Use PlayerPrefs, to store the last scene before loading level, and use this information to change the position of the player.
//Scene1:
PlayerPrefs.SetInt("sceneId", Application.loadedLevel);
Application.LoadLevel(....);
//Scene2:
PlayerObject.transform.position = SpawnPoints[PlayerPrefs.GetInt("sceneId")];
hope this helps.
Your answer
Follow this Question
Related Questions
Entering And Exiting Car 2 Answers
JS Enter Exit with NetworkPlayer 1 Answer
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
Enter/Exit vehicle 0 Answers
character moving after moving 0 Answers