コード例 #1
0
    IEnumerator LoadNow()
    {
        s_Data = PlayerPrefs.GetString("SaveSlot", "null");
        Debug.Log("check if null = " + s_Data);
        if (s_Data != "null")
        {
            GameObject[] listTower = GameObject.FindGameObjectsWithTag("Tower");
            foreach (GameObject obj in listTower)
            {
                Destroy(obj);
            }

            listTower = GameObject.FindGameObjectsWithTag("Energy");
            foreach (GameObject obj in listTower)
            {
                Destroy(obj);
            }

            listTower = GameObject.FindGameObjectsWithTag("Resource");
            foreach (GameObject obj in listTower)
            {
                Destroy(obj);
            }

            listTower = GameObject.FindGameObjectsWithTag("Wall");
            foreach (GameObject obj in listTower)
            {
                Destroy(obj);
            }

            data = JsonUtility.FromJson <SaveData>(s_Data);

            waveManager.SetWave(data.Wave);


            foreach (Towers tower in data.AttackTowers.ListsOfTowers)
            {
                GameObject temp = Instantiate(TowerPrefab, tower.postion, Quaternion.identity);
                temp.GetComponent <Tower>().currentHP = tower.health;
            }

            foreach (Towers tower in data.EnergyTowers.ListsOfTowers)
            {
                GameObject temp = Instantiate(AtomicPrefab, tower.postion, Quaternion.identity);
                temp.GetComponent <Tower>().currentHP = tower.health;
            }

            foreach (Towers tower in data.MiningTowers.ListsOfTowers)
            {
                GameObject temp = Instantiate(MiningPrefab, tower.postion, Quaternion.identity);
                temp.GetComponent <Tower>().currentHP = tower.health;
            }

            foreach (Towers tower in data.WallTower.ListsOfTowers)
            {
                GameObject temp = Instantiate(WallPrefab, tower.postion, Quaternion.identity);
                temp.GetComponent <Tower>().currentHP = tower.health;
            }
            yield return(new WaitForSeconds(0.25f));

            resourceSystem.SetPlutonium(data.plutonium);
            resourceSystem.SetOre(data.ore);

            waveManager.Enabled = true;
        }
    }