// Load the game public void LoadGame() { SaveLoadObject loadedData = saveLoad.Load(); // Update player GameObject player = GameObject.FindGameObjectWithTag("Player"); player.transform.SetPositionAndRotation(loadedData.player.position, loadedData.player.rotation); player.GetComponent <PlayerHealth>().SetHealth(loadedData.player.health); ScoreManager.score = loadedData.player.score; //Update enemies // First remove existing enemies EnemyHealth[] enemies = GameObject.FindObjectsOfType <EnemyHealth>(); foreach (EnemyHealth enemy in enemies) { Destroy(enemy.gameObject); } // Add saved enemies foreach (EnemyInfo newEnemy in loadedData.enemy) { GameObject prefab = Resources.Load("Prefabs/" + newEnemy.prefabName) as GameObject; GameObject enemyInstance = Instantiate(prefab, newEnemy.position, newEnemy.rotation); enemyInstance.GetComponent <EnemyHealth>().SetHealth(newEnemy.health); // had to add that because when loaded it would add additional score if saved whild enemy killed enemyInstance.GetComponent <EnemyHealth>().yieldscore = newEnemy.yieldScore; } }
public void TestPolymorphismSaveLoadDisk() { const string FILE_NAME = "test.dat"; B b = new B() { Hello = "hello", Test = 1 }; SaveLoadObject.SaveObject(b, FILE_NAME); B loaded = SaveLoadObject.LoadObjectOfType <B>(FILE_NAME); if (File.Exists(FILE_NAME)) { File.Delete(FILE_NAME); } Assert.AreEqual(b.Hello, loaded.Hello); List <A> list = new List <A>(); list.Add(new B() { Hello = " ha" }); SaveLoadObject.SaveObject(list, FILE_NAME); List <A> listLoaded = SaveLoadObject.LoadObjectOfType <List <A> >(FILE_NAME); Assert.IsTrue(listLoaded[0] is B); if (File.Exists(FILE_NAME)) { File.Delete(FILE_NAME); } }
// save the game public void SaveGame() { SaveLoadObject data = new SaveLoadObject(); // Get player data GameObject player = GameObject.FindGameObjectWithTag("Player"); data.player.health = player.GetComponent <PlayerHealth>().currentHealth; data.player.position = player.transform.position; data.player.rotation = player.transform.rotation; data.player.score = ScoreManager.score; // gets all gameobjects with enemy movement script component EnemyHealth[] enemies = GameObject.FindObjectsOfType <EnemyHealth>(); foreach (EnemyHealth enemy in enemies) { string enemyPrefabName = enemy.gameObject.name; EnemyInfo enemyInfo = new EnemyInfo(); enemyInfo.prefabName = enemyPrefabName.Substring(0, enemyPrefabName.Length - 7); enemyInfo.position = enemy.gameObject.transform.position; enemyInfo.rotation = enemy.gameObject.transform.rotation; enemyInfo.health = enemy.currentHealth; enemyInfo.yieldScore = enemy.yieldscore; data.enemy.Add(enemyInfo); } saveLoad.Save(data); }