public void zapis() { if (lokalizacja_zapisu != null) { GameObject gamemaster = GameObject.Find("GameMaster"); //przechowuje dane obiektu GameObject postać = GameObject.FindGameObjectWithTag("Gracz"); //przechowuje dane obiektu List <GameObject> wojownik = new List <GameObject>(); //przechowuje liste danych obiektów List <GameObject> uzdrowiciel = new List <GameObject>(); //przechowuje liste danych obiektów List <GameObject> robotnik = new List <GameObject>(); //przechowuje liste danych obiektów List <GameObject> jednostki = new List <GameObject>(GameObject.FindGameObjectsWithTag("Unit")); //przechowuje znalezioną listę obiektó if (GameObject.FindGameObjectWithTag("Czepion")) { List <GameObject> czepioni = new List <GameObject>(GameObject.FindGameObjectsWithTag("Czepion")); //przechowuje znalezioną listę obiektó foreach (var item in czepioni) { jednostki.Add(item); //dodawanie obiektu do listy } } foreach (var item in jednostki) { if (item.name.Contains("wojownik")) { wojownik.Add(item); //dodawanie obiektu do listy } if (item.name.Contains("uzdrowiciel")) { uzdrowiciel.Add(item); //dodawanie obiektu do listy } if (item.name.Contains("robotnik")) { robotnik.Add(item); //dodawanie obiektu do listy } } List <GameObject> drzewa = new List <GameObject>(GameObject.FindGameObjectsWithTag("drzewo")); //przechowuje znalezioną listę obiektó List <GameObject> chaty = new List <GameObject>(GameObject.FindGameObjectsWithTag("chata")); //przechowuje znalezioną listę obiektó klasa_do_zapisu _obiekt = new klasa_do_zapisu(); //odnośnik do skryptu _obiekt.nazwa_sceny = Application.loadedLevelName; //przypisanie ciągu znaków klasa_do_zapisu.dane_postaci dane_postaci = new klasa_do_zapisu.dane_postaci(); //przechowuje strukture dane_postaci.położenie_x = postać.transform.position.x; //przypisuje wartość dane_postaci.położenie_y = postać.transform.position.y; //przypisuje wartość dane_postaci.położenie_z = postać.transform.position.z; //przypisuje wartość dane_postaci.grupa = postać.GetComponent <przynależność> ().Grupa; //przypisuje wartość dane_postaci.nr_oddziału = postać.GetComponent <przynależność> ().Nr_oddziału; //przypisuje wartość dane_postaci.stan_życia = postać.GetComponent <Życie> ().currentHealth; //przypisuje wartość dane_postaci.stan_many = postać.GetComponent <mana>().stan_many; //przypisuje wartość _obiekt.postaci = dane_postaci; //przypisanie struktury foreach (var item in wojownik) { klasa_do_zapisu.dane_wojownika dane = new klasa_do_zapisu.dane_wojownika(); //przechowuje strukture dane.tag = item.tag; //przypisanie ciągu znaków dane.położenie_x = item.transform.position.x; //przypisuje wartość dane.położenie_y = item.transform.position.y; //przypisuje wartość dane.położenie_z = item.transform.position.z; //przypisuje wartość dane.grupa = item.GetComponent <przynależność> ().Grupa; //przypisuje wartość dane.nr_oddziału = item.GetComponent <przynależność> ().Nr_oddziału; //przypisuje wartość dane.stan_życia = item.GetComponent <Życie> ().currentHealth; //przypisuje wartość dane.nowy_cel = item.GetComponent <AI_wojownika> ().nowy_cel.ToString(); dane.cel_x = item.GetComponent <AI_wojownika> ().cel.x; //przypisuje wartość dane.cel_y = item.GetComponent <AI_wojownika> ().cel.y; //przypisuje wartość dane.cel_z = item.GetComponent <AI_wojownika> ().cel.z; //przypisuje wartość _obiekt.wojownik.Add(dane); //dodaje syrukture do listy } foreach (var item in uzdrowiciel) { klasa_do_zapisu.dane_uzdrowiciela dane = new klasa_do_zapisu.dane_uzdrowiciela(); //przechowuje strukture dane.tag = item.tag; //przypisanie ciągu znaków dane.położenie_x = item.transform.position.x; //przypisuje wartość dane.położenie_y = item.transform.position.y; //przypisuje wartość dane.położenie_z = item.transform.position.z; //przypisuje wartość dane.grupa = item.GetComponent <przynależność> ().Grupa; //przypisuje wartość dane.nr_oddziału = item.GetComponent <przynależność> ().Nr_oddziału; //przypisuje wartość dane.stan_życia = item.GetComponent <Życie> ().currentHealth; //przypisuje wartość dane.cel_x = item.GetComponent <do_celu> ()._cel.x; //przypisuje wartość dane.cel_y = item.GetComponent <do_celu> ()._cel.y; //przypisuje wartość dane.cel_z = item.GetComponent <do_celu> ()._cel.z; //przypisuje wartość _obiekt.uzdrowiciel.Add(dane); //dodaje syrukture do listy } foreach (var item in robotnik) { klasa_do_zapisu.dane_robotnik dane = new klasa_do_zapisu.dane_robotnik(); //przechowuje strukture dane.położenie_x = item.transform.position.x; //przypisuje wartość dane.położenie_y = item.transform.position.y; //przypisuje wartość dane.położenie_z = item.transform.position.z; //przypisuje wartość dane.grupa = item.GetComponent <przynależność> ().Grupa; //przypisuje wartość dane.nr_oddziału = item.GetComponent <przynależność> ().Nr_oddziału; //przypisuje wartość dane.stan_życia = item.GetComponent <Życie> ().currentHealth; //przypisuje wartość dane.ilość = item.GetComponent <zbieranie_sórowców>().niesiony; //przypisuje wartość _obiekt.robotnik.Add(dane); //dodaje syrukture do listy } foreach (var item in chaty) { klasa_do_zapisu.dane_chat dane = new klasa_do_zapisu.dane_chat(); //przechowuje strukture dane.położenie_x = item.transform.position.x; //przypisuje wartość dane.położenie_y = item.transform.position.y; //przypisuje wartość dane.położenie_z = item.transform.position.z; //przypisuje wartość dane.rotacja_x = item.transform.rotation.x; //przypisuje wartość dane.rotacja_y = item.transform.rotation.y; //przypisuje wartość dane.rotacja_z = item.transform.rotation.z; //przypisuje wartość dane.rotacja_w = item.transform.rotation.w; //przypisuje wartość dane.grupa = item.GetComponent <przynależność> ().Grupa; //przypisuje wartość dane.nr_oddziału = item.GetComponent <przynależność> ().Nr_oddziału; //przypisuje wartość dane.stan_życia = item.GetComponent <Życie> ().currentHealth; //przypisuje wartość foreach (var item1 in item.GetComponent <produkcja>().kolejka) { dane.kolejka.Add(item1.name); //dodaje ciągu znaków do listy } dane.czas = item.GetComponent <produkcja>().pasek_produkcji.value; //przypisuje wartość _obiekt.chata.Add(dane); //dodaje syrukture do listy } foreach (var item in drzewa) { klasa_do_zapisu.dane_drzew dane = new klasa_do_zapisu.dane_drzew(); //przechowuje strukture dane.położenie_x = item.transform.position.x; //przypisuje wartość dane.położenie_y = item.transform.position.y; //przypisuje wartość dane.położenie_z = item.transform.position.z; //przypisuje wartość dane.ilość = item.GetComponent <Surowce>().ilość; //przypisuje wartość _obiekt.drzewa.Add(dane); //dodaje syrukture do listy } GameObject _UI = GameObject.Find("UI panel"); //przechowuje dane obiektu foreach (var item in _UI.GetComponent <zadania>().cele_do_zniszczenia) { klasa_do_zapisu.dane_zadań dane = new klasa_do_zapisu.dane_zadań(); //przechowuje strukture dane.tag = item.tag; //przypisanie ciągu znaków dane.położenie_x = item.transform.position.x; //przypisuje wartość dane.położenie_y = item.transform.position.y; //przypisuje wartość dane.położenie_z = item.transform.position.z; //przypisuje wartość _obiekt.zadania.Add(dane); //dodaje syrukture do listy } klasa_do_zapisu.dane_GameMaster dane_GM = new klasa_do_zapisu.dane_GameMaster(); //przechowuje strukture dane_GM.ilość = gamemaster.GetComponent <Surowce>().ilość; //przypisuje wartość _obiekt.GameMaster = dane_GM; //przypisuje strukture dane_do_string = serializacjaobiektów(_obiekt); //przypisanie ciągu znaków zapis_do_xml(); //aktywacja funkcji lokalizacja_zapisu = null; //usuwanie zawartości } }
public void wczytywanie() { if (plik != null) { odczyt_z_XML(); //aktywacja funkcji _klasa_do_zapisu = (klasa_do_zapisu)deserializacja(_dane); //przypisanie danych if (Application.loadedLevelName != _klasa_do_zapisu.nazwa_sceny) { pomocne_wczytywanie1 = (GameObject)Instantiate(pomocne_wczytywanie); //tworzy obiekt pomocne_wczytywanie1.GetComponent <wczytywanie_z_innej_sceny>().zapis = plik; //przypisanie ciągu znaków DontDestroyOnLoad(pomocne_wczytywanie1); //uniemożliwia zniszczenie obiektu przy przejściu do następnej sceny Application.LoadLevel(_klasa_do_zapisu.nazwa_sceny); //przechodzi do wybranej sceny } else { GameObject _UI = GameObject.Find("UI panel"); //przechowuje dane obiektu _UI.GetComponent <zadania>().enabled = false; //wyłącza skrypt _UI.GetComponent <zadania>().cele_do_zniszczenia.Clear(); //czyści listę if (GameObject.FindGameObjectWithTag("Unit")) { List <GameObject> lista = new List <GameObject> (GameObject.FindGameObjectsWithTag("Unit")); //przechowuje znalezioną listę obiektów foreach (var item in lista) { Destroy(item); //niszczy obiekt } } if (GameObject.FindGameObjectWithTag("drzewo")) { List <GameObject> lista = new List <GameObject> (GameObject.FindGameObjectsWithTag("drzewo")); //przechowuje znalezioną listę obiektó foreach (var item in lista) { Destroy(item); //niszczy obiekt } } if (GameObject.FindGameObjectWithTag("Czepion")) { List <GameObject> lista = new List <GameObject> (GameObject.FindGameObjectsWithTag("Czepion")); //przechowuje znalezioną listę obiektó foreach (var item in lista) { Destroy(item); //niszczy obiekt } } if (GameObject.FindGameObjectWithTag("chata")) { List <GameObject> lista = new List <GameObject> (GameObject.FindGameObjectsWithTag("chata")); //przechowuje znalezioną listę obiektó foreach (var item in lista) { Destroy(item); //niszczy obiekt } } GameObject.Find("GameMaster").GetComponent <nadawanie_celu>().lista_w_oddziale.Clear(); foreach (var item in _klasa_do_zapisu.drzewa) { GameObject _obiekt; //przechowuje dane obiektu _obiekt = (GameObject)Instantiate(drzewo, new Vector3(item.położenie_x, item.położenie_y, item.położenie_z), drzewo.transform.rotation); //tworzy obiekt w przestrzeni _obiekt.GetComponent <Surowce> ().ilość = item.ilość; //przypisuje wartość } foreach (var item in _klasa_do_zapisu.chata) { GameObject _obiekt; //przechowuje dane obiektu _obiekt = (GameObject)Instantiate(chata, new Vector3(item.położenie_x, item.położenie_y, item.położenie_z), new Quaternion(item.rotacja_x, item.rotacja_y, item.rotacja_z, item.rotacja_w)); //tworzy obiekt w przestrzeni _obiekt.GetComponent <przynależność> ().Grupa = item.grupa; //przypisuje wartość _obiekt.GetComponent <przynależność> ().Nr_oddziału = item.nr_oddziału; //przypisuje wartość _obiekt.GetComponent <Życie> ().currentHealth = item.stan_życia; //przypisuje wartość foreach (var item1 in item.kolejka) { if (item1 == "wojownik") { _obiekt.GetComponent <produkcja>().kolejka.Add(wojownik); //dodaje obiekt do listy } if (item1 == "uzdrowiciel") { _obiekt.GetComponent <produkcja>().kolejka.Add(uzdrowiciel); //dodaje obiekt do listy } if (item1 == "robotnik") { _obiekt.GetComponent <produkcja>().kolejka.Add(robotnik); //dodaje obiekt do listy } } _obiekt.GetComponent <produkcja>().pasek_produkcji.value = item.czas; //przypisuje wartość } if (GameObject.Find("Postac")) { klasa_do_zapisu.dane_postaci wczytywany_obiekt = _klasa_do_zapisu.postaci; GameObject.Find("Postac").transform.position = new Vector3(wczytywany_obiekt.położenie_x, wczytywany_obiekt.położenie_y, wczytywany_obiekt.położenie_z); //przypisuje wartość GameObject.Find("Postac").GetComponent <przynależność> ().Grupa = wczytywany_obiekt.grupa; //przypisuje wartość GameObject.Find("Postac").GetComponent <przynależność> ().Nr_oddziału = wczytywany_obiekt.nr_oddziału; //przypisuje wartość GameObject.Find("Postac").GetComponent <Życie> ().currentHealth = wczytywany_obiekt.stan_życia; //przypisuje wartość GameObject.Find("Postac").GetComponent <mana> ().stan_many = wczytywany_obiekt.stan_many; //przypisuje wartość } foreach (var item in _klasa_do_zapisu.wojownik) { GameObject _obiekt; //przechowuje dane obiektu _obiekt = (GameObject)Instantiate(wojownik, new Vector3(item.położenie_x, item.położenie_y, item.położenie_z), wojownik.transform.rotation); //tworzy obiekt w przestrzeni _obiekt.GetComponent <przynależność> ().Grupa = item.grupa; //przypisuje wartość _obiekt.GetComponent <przynależność> ().Nr_oddziału = item.nr_oddziału; //przypisuje wartość _obiekt.GetComponent <Życie> ().currentHealth = item.stan_życia; //przypisuje wartość _obiekt.GetComponent <AI_wojownika> ().nowy_cel = (item.nowy_cel == "true"); //przypisuje wartość _obiekt.GetComponent <AI_wojownika> ().cel = new Vector3(item.cel_x, item.cel_y, item.cel_z); //przypisuje wartość } foreach (var item in _klasa_do_zapisu.uzdrowiciel) { GameObject _obiekt; //przechowuje dane obiektu _obiekt = (GameObject)Instantiate(uzdrowiciel, new Vector3(item.położenie_x, item.położenie_y, item.położenie_z), uzdrowiciel.transform.rotation); //tworzy obiekt w przestrzeni _obiekt.GetComponent <przynależność> ().Grupa = item.grupa; //przypisuje wartość _obiekt.GetComponent <przynależność> ().Nr_oddziału = item.nr_oddziału; //przypisuje wartość _obiekt.GetComponent <Życie> ().currentHealth = item.stan_życia; //przypisuje wartość _obiekt.GetComponent <mana>().stan_many = item.stan_many; //przypisuje wartość _obiekt.GetComponent <do_celu> ()._cel = new Vector3(item.cel_x, item.cel_y, item.cel_z); //przypisuje wartość if (_obiekt.GetComponent <do_celu> ()._cel != new Vector3(0, 0, 0)) { _obiekt.GetComponent <do_celu> ().Idź(_obiekt.GetComponent <do_celu> ()._cel); //przypisuje wartość } } foreach (var item in _klasa_do_zapisu.robotnik) { GameObject _obiekt; //przechowuje dane obiektu _obiekt = (GameObject)Instantiate(robotnik, new Vector3(item.położenie_x, item.położenie_y, item.położenie_z), robotnik.transform.rotation); //tworzy obiekt w przestrzeni _obiekt.GetComponent <przynależność> ().Grupa = item.grupa; //przypisuje wartość _obiekt.GetComponent <przynależność> ().Nr_oddziału = item.nr_oddziału; //przypisuje wartość _obiekt.GetComponent <Życie> ().currentHealth = item.stan_życia; //przypisuje wartość _obiekt.GetComponent <zbieranie_sórowców> ().niesiony = item.ilość; //przypisuje wartość } GameObject.Find("GameMaster").GetComponent <Surowce> ().ilość = _klasa_do_zapisu.GameMaster.ilość; //przypisuje wartość foreach (var item in _klasa_do_zapisu.zadania) { Vector3 położenie = new Vector3(item.położenie_x, item.położenie_y, item.położenie_z); //tworzy punkt w przestrzeni List <GameObject> szukanie = new List <GameObject>(GameObject.FindGameObjectsWithTag(item.tag)); //tworzy liste obiektów foreach (var item1 in szukanie) { if (item1.transform.position == położenie) { _UI.GetComponent <zadania>().cele_do_zniszczenia.Add(item1); //dodaje do listy } } } _UI.GetComponent <zadania>().enabled = true; Time.timeScale = 1; //zmiana prędkości plik = null; //czyszczenie } } }