Example #1
0
        // 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);
            }
        }
Example #3
0
        // 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);
        }