Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine.UI;
- public class SystemWynikow : MonoBehaviour
- {
- public List<Wynik> wyniki = new List<Wynik>();
- public int maxIloscWynikow = 10;
- public Vector2 pozycjaStartowa = new Vector2(0, 270);
- public Text nazwa, wartosc;
- public Scrollbar scrollBar;
- public GameObject prefabWynik;
- public Transform panelParent;
- void Start()
- {
- WczytajWyniki();
- }
- public void DodajWynik()
- {
- if(string.IsNullOrEmpty(nazwa.text) || string.IsNullOrEmpty(wartosc.text))
- return;
- Wynik nowyWynik = new Wynik();
- nowyWynik.nazwa = nazwa.text;
- nowyWynik.wartosc = int.Parse(wartosc.text);
- wyniki.Add(nowyWynik);
- Debug.Log("Dodano nowy Wynik");
- ZapiszWyniki();
- WczytajWyniki();
- }
- public void UsunWyniki()
- {
- foreach(GameObject w in GameObject.FindGameObjectsWithTag("Wynik"))
- {
- Destroy(w);
- }
- wyniki.Clear();
- PlayerPrefs.SetString("Wyniki", "");
- }
- void ZapiszWyniki()
- {
- string zapiszWyniki = "";
- for(int i = 0; i < wyniki.Count; i++)
- {
- if(i != 0 && i != wyniki.Count)
- zapiszWyniki += ":";
- zapiszWyniki += wyniki[i].nazwa + ":" + wyniki[i].wartosc;
- }
- PlayerPrefs.SetString("Wyniki", zapiszWyniki);
- Debug.Log("Zapisano wyniki");
- }
- void WczytajWyniki()
- {
- wyniki.Clear();
- string splitWynikow = PlayerPrefs.GetString("Wyniki");
- if(string.IsNullOrEmpty(splitWynikow))
- {
- Debug.Log("Lista wynikow jest pusta");
- return;
- }
- foreach(GameObject go in GameObject.FindGameObjectsWithTag("Wynik"))
- {
- Destroy(go);
- }
- string[] splitWynik = splitWynikow.Split(':');
- Wynik nowyWynik = new Wynik();
- for(int i = 0; i < splitWynik.Length; i++)
- {
- if(i % 2 == 0 && !string.IsNullOrEmpty(splitWynik[i]))
- {
- nowyWynik = new Wynik();
- nowyWynik.nazwa = splitWynik[i];
- nowyWynik.wartosc = int.Parse(splitWynik[i + 1]);
- wyniki.Add(nowyWynik);
- }
- }
- SortowanieWynikow();
- Debug.Log("Wczytano wyniki. Ilosc: " + wyniki.Count);
- WyswietlWyniki();
- }
- void WyswietlWyniki()
- {
- foreach(GameObject go in GameObject.FindGameObjectsWithTag("Wynik"))
- {
- Destroy(go);
- }
- scrollBar.value = 1;
- for(int i = 0; i < wyniki.Count; i++)
- {
- GameObject nowyWynik = Instantiate(prefabWynik) as GameObject;
- nowyWynik.transform.parent = GameObject.Find("Canvas").transform;
- nowyWynik.GetComponent<RectTransform>().localPosition = new Vector3(pozycjaStartowa.x, pozycjaStartowa.y - (i * 60), 0);
- nowyWynik.transform.parent = panelParent;
- nowyWynik.name = wyniki[i].nazwa + "_" + wyniki[i].wartosc;
- nowyWynik.transform.GetChild(0).GetComponent<Text>().text = wyniki[i].nazwa;
- nowyWynik.transform.GetChild(1).GetComponent<Text>().text = wyniki[i].wartosc.ToString();
- }
- }
- void SortowanieWynikow()
- {
- wyniki.Sort(delegate(Wynik x, Wynik y) {return y.wartosc.CompareTo(x.wartosc);});
- if(wyniki.Count > maxIloscWynikow)
- {
- Debug.Log("Usunieto: " + wyniki[wyniki.Count -1].nazwa);
- wyniki.RemoveAt(wyniki.Count -1);
- }
- }
- }
- [System.Serializable]
- public class Wynik
- {
- public string nazwa;
- public int wartosc;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement