Question by
ChocoboScribe · Nov 19, 2021 at 05:56 AM ·
spawninglevelsspawnpointstransitions
Scene back and forth Transition Help
I'm able to get to a new level, which I'm using as just fine using an empty game object as a spawn point but when I use a return door also using an empty object as a spawn point when returning to the main level, it just starts the whole level all over again and does not spawn my player character to the gameobject I set up as a return point. I'm thinking of using a bool that checks if that level has been started or not. Thanks!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneShifter : MonoBehaviour
{
//Other Scripts
private MemoryDoor memDoor;
public PlayerMovement player;
public GameObject hero;
[Header("Spawners")]
public Transform spawnOneOne;
public Transform returnOneOne;
// Start is called before the first frame update
void Start()
{
memDoor = FindObjectOfType<MemoryDoor>();
DontDestroyOnLoad(gameObject);
}
// Update is called once per frame
void Update()
{
GoToMinigame();
}
//Go to minigame
public void GoToMinigame()
{
if (Input.GetKeyDown(KeyCode.KeypadEnter))
{
if (player.canToggleMemMiniOneOne)
{
SceneManager.LoadScene("Memory1-1");
FindStartPos();
player.canToggleMemMiniOneOne = false;
}
if (player.canToggleReturnOneOne)
{
SceneManager.LoadScene("CandyForest_1");
FindReturnPos();
player.canToggleReturnOneOne = false;
}
}
}
public void FindStartPos()
{
transform.position = GameObject.FindWithTag("Spawn1-1").transform.position;
}
public void FindReturnPos()
{
transform.position = GameObject.FindWithTag("ReturnPos1-1").transform.position;
}
public void OnTriggerEnter2D(Collider2D mem)
{
//Play enters Memory match minigame 1-1
if (mem.gameObject.tag == "Memory1-1")
{
Debug.Log("You can enter the minigame now!");
memDoor.pointer.SetActive(true);
player.canToggleMemMiniOneOne = true;
}
//To return to level 1
if(mem.gameObject.tag == "Return1-1")
{
Debug.Log("You can go back to the Level now!");
player.canToggleReturnOneOne = true;
}
}
public void OnTriggerExit2D(Collider2D mem)
{
if (mem.gameObject.tag == "Memory1-1")
{
memDoor.pointer.SetActive(false);
player.canToggleMemMiniOneOne = false;
}
//To return to level 1
if (mem.gameObject.tag == "Return1-1")
{
player.canToggleReturnOneOne = false;
}
}
}
Comment
Your answer
Follow this Question
Related Questions
How to make objects contantly spawn from multiple points 0 Answers
Spawning Player in Singleplayer 1 Answer
Enemy Spawner 2 Answers
Random.Onunitsphere confusing different spheres 1 Answer
Spawn an object when player is near and presses button 1 Answer