Ran into an issue where each time my player is killed, my script that reloads the scene is flashing, “Level1 is Loading/not Loaded” in my Hierarchy
//Singleton instantation
private static NewPlayer instance;
public static NewPlayer Instance
{
get
{
if (instance == null) instance = GameObject.FindObjectOfType<NewPlayer>();
return instance;
}
}
private void Awake()
{
if (GameObject.Find("New Player"))
{
Destroy(gameObject);
}
}
// Start is called before the first frame update
void Start()
{
DontDestroyOnLoad(gameObject);
gameObject.name = "New Player";
UpdateUI();
SetSpawnPosition();
}
In the Update function I have:
if (health <= 0)
{
Die();
}
Which calls
public void Die()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
Above I have the script check to see in the Awake() if there is already in instance of “New Player” in the scene (ex: player clears first level and enters the next level) - and if so, to destroy that asset. After it is destroyed, a New “New Player” is created and spawns at an empty game object labeled as “SpawnPosition”.
What’s supposed to happen:
Player enters level, HP hits 0, reset back to SpawnPosition.
What is happening is the scene, “Level1” will flash a message in the hierarchy:
“Level1 (no loaded)”
“Level1 (is loading)”
I’ve checked with debug that the player is dying correctly, it just won’t delete the player and spawn them back at the start of the scene.
Any and all help would be appreciated.