void updateData() { if (save) { DontDestroyOnLoad(this.gameObject); List <GameObject> rootObjects = new List <GameObject>(); Scene scene = SceneManager.GetActiveScene(); scene.GetRootGameObjects(rootObjects); foreach (GameObject go in rootObjects) { if (go != this.gameObject) { go.transform.parent = parentGO.transform; } } GameController.LoadScene("Fight"); } else { List <GameObject> rootObjects = new List <GameObject>(); Scene scene = SceneManager.GetActiveScene(); scene.GetRootGameObjects(rootObjects); foreach (GameObject go in rootObjects) { if (go != this.gameObject) { Destroy(go); } } List <Transform> tList = new List <Transform>(); foreach (Transform t in parentGO.transform) { tList.Add(t); } foreach (Transform child in tList) { child.parent = null; } if (destroyEnemy) { StarSpawnController ssc = passingGameObject.GetComponent <StarSpawnController>(); Enemy enemy = passingGameObject.GetComponent <Enemy>(); if (ssc != null) { ssc.DropStar(); } if (enemy != null) { int oldLevel = GameController.player.level; GameController.player.gainExperience(enemy.getExperience()); int newLevel = GameController.player.level; if (oldLevel != newLevel) { Feedback levelUp; levelUp.speaker = ""; levelUp.text = "Congratulations, you've reached level " + newLevel + "!"; feedbackController.showFeedback(new Feedback[] { levelUp }); } } Destroy(passingGameObject); } else { passingGameObject.GetComponent <EnemyMovement>().tempDisableTrigger(); } } }