Jump to content
Unity Insider Forum

im Script gespeicherte Werte werden nicht angezeigt


peachplayer

Recommended Posts

using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;

public class Anzeige1 : MonoBehaviour
{
    List<HighscoreEintrag> liste;
    public InputField NummerEingabe;
    public InputField ParzellennameEingabe;
    public InputField FlächeEingabe;
    public InputField KulturEingabe;

    public Text NummerAnzeige, ParzellennameAnzeige, FlächeAnzeige, KulturAnzeige, KassenbestandAnzeige, ÖkobilanzAnzeige;
    public Toggle anzeigeSchalter;

    public Rect windowRect0 = new Rect(600, 20, 120, 50);

    public string[] Flurname = new string[5] { "Fahlrüti1", "Studenacker1", "Suchern1", "Wille2", "Zuchern" };
    public float[] Area = new float[5] { 219, 155, 185, 88, 77 };
    public string[] Kulturen = new string[5] { "Winterweizen", "Mais", "Wintergerste", "Wintergerste", "Wintergerste" };
    public int k;


    void Start()
    {
        liste = new List<HighscoreEintrag>();
        ListeFuellen();
    }

    void ListeFuellen()
    {
        for (int i = 0; i < 10; i++)
        {
            if (PlayerPrefs.HasKey("Parzellenname_p" + i))
            {
                int Nummer = PlayerPrefs.GetInt("Nummer_p" + i);
                string Parzellenname = PlayerPrefs.GetString("Parzellenname_p" + i);
                string Kultur = PlayerPrefs.GetString("Kultur_p" + i);
                float Fläche = PlayerPrefs.GetFloat("Fläche_p" + i);

                HighscoreEintrag eintrag = new HighscoreEintrag(Nummer, Parzellenname, Fläche, Kultur);
                liste.Add(eintrag);
            }
            else
                break;
        }

        ListeAnzeigen();
    }

    void ListeAnzeigen()
    {
        string NummerAusgabe = "";
        string ParzellennameAusgabe = "";
        string FlächeAusgabe = "";
        string KulturAusgabe = "";
        string NAusgabe = "";
        string PAusgabe = "";
        string KAusgabe = "";
        string MgAusgabe = "";


        for (int i = 0; i < liste.Count && i < 10; i++)
        {
            NummerAusgabe += liste[i].GetNummer() + "\n";
            ParzellennameAusgabe += liste[i].GetParzellenname() + "\n";
            FlächeAusgabe += liste[i].GetFläche() + "\n";
            KulturAusgabe += liste[i].GetKultur() + "\n";


            if (liste[i].GetKultur() == "Winterweizen")
                Debug.Log("Winterweizen");
            PlayerPrefs.SetFloat("Ertrag_ww" + i, 7000.0f);

            if (liste[i].GetKultur() == "Wintergerste")
                PlayerPrefs.SetFloat("Ertrag_wg" + i, 5000.0f);
            Debug.Log("Wintergerste");
            if (liste[i].GetKultur() == "Mais")
                PlayerPrefs.SetFloat("Ertrag_m" + i, 10000.0f);
            Debug.Log("Mais");
            //NAusgabe += liste[i].GetN() + "\n";
            //PAusgabe += liste[i].GetP() + "\n";
            //KAusgabe += liste[i].GetK() + "\n";
            //MgAusgabe += liste[i].GetMg() + "\n";
        }
        NummerAnzeige.text = NummerAusgabe;
        ParzellennameAnzeige.text = ParzellennameAusgabe;
        FlächeAnzeige.text = FlächeAusgabe;
        KulturAnzeige.text = KulturAusgabe;
        
        KassenbestandAnzeige.text = PlayerPrefs.GetFloat("Kassenbestand").ToString();
       ÖkobilanzAnzeige.text = PlayerPrefs.GetFloat("Ökobilanz").ToString();
        //NAnzeige.text = NAusgabe;
        //PAnzeige.text = PAusgabe;
        //KAnzeige.text = KAusgabe;
        //MgAnzeige.text = MgAusgabe;
    }

    public void NeuerEintragHinzu()
    {
       
        HighscoreEintrag neuerEintrag = ZufallsEintrag();
       
            k++;
      
     

        bool eingefuegt = false;
        for (int i = 0; i < liste.Count; i++)
        {
            if (!liste[i].GroesserAls(neuerEintrag.GetNummer()))
            {
                liste.Insert(i, neuerEintrag);
                eingefuegt = true;
                break;
            }
        }

        if (!eingefuegt)
            liste.Add(neuerEintrag);

        ListeAnzeigen();
        ListeSpeichern();
    }

    HighscoreEintrag ZufallsEintrag()
    {
        int Nummer = int.Parse(NummerEingabe.text);
        string Parzellenname = ParzellennameEingabe.text;
        float Fläche = float.Parse(FlächeEingabe.text);
        string Kultur = KulturEingabe.text;



        string eingabe = ParzellennameEingabe.text;
     
        if (Nummer == 0 && eingabe == "" && Fläche == 0 && Kultur == "" && k<=4)
        {
         
                Nummer = k;
                Parzellenname = Flurname[k];
                Fläche = Area[k];
                Kultur = Kulturen[k];

                HighscoreEintrag neuerEintrag1 = new HighscoreEintrag(Nummer, Parzellenname, Fläche, Kultur);

                return neuerEintrag1;
                
        }
      
        if (eingabe != "")
        {
            if (eingabe.Length >= 20)
                eingabe = eingabe.Substring(0, 20);
            Parzellenname = eingabe;
        }


        HighscoreEintrag neuerEintrag = new HighscoreEintrag(Nummer, Parzellenname, Fläche, Kultur);

        return neuerEintrag;
    
    }

    void ListeSpeichern()
    {
        for (int i = 0; i < liste.Count && i < 10; i++)
        {
            PlayerPrefs.SetInt("Nummer_p" + i, liste[i].GetNummer());
            PlayerPrefs.SetString("Parzellenname_p" + i, liste[i].GetParzellenname());
            PlayerPrefs.SetFloat("Fläche_p" + i, liste[i].GetFläche());
            PlayerPrefs.SetString("Kultur_p" + i, liste[i].GetKultur());

        }
    }

    public void AllesLoeschen()
    {
        NummerAnzeige.text = "";
        ParzellennameAnzeige.text = "";
        FlächeAnzeige.text = "";
        KulturAnzeige.text = "";

        liste.Clear();
        PlayerPrefs.DeleteAll();
    }
    void OnGUI()
    {
    
        
        if (PlayerPrefs.GetFloat("Kassenbestand") >= 100000)
            windowRect0 = GUI.Window(0, windowRect0, DoMyWindow, "Spiel gewonnen!");
           //GUILayout.Label("Spiel gewonnen!");
       if (PlayerPrefs.GetFloat("Kassenbestand") <= -50000)
           windowRect0 = GUI.Window(0, windowRect0, DoMyWindow,"Spiel verloren!");
           //GUILayout.Label("Spiel verloren!");
       if (PlayerPrefs.GetFloat("Ökobilanz") <= -1000)
           windowRect0 = GUI.Window(0, windowRect0, DoMyWindow, "Spiel verloren!");
           //GUILayout.Label("Spiel verloren!");
        //if (gameRunning)
        //{
        //    GUILayout.Label("Aktuelle Runde: " + currentRound);
        //    GUILayout.Label("Aktueller Spieler: " + currentPlayer);
        //    GUILayout.Label("Aktueller Spielzug: " + currentBall);
        //} else
        //{
        //    GUILayout.Label("Spiel starten mit linker Maustaste.");
        //}






        if (GUI.Button(new Rect(10, 10, 200, 50), "Parzellendaten eingeben"))
            Application.LoadLevel(0);
        if (GUI.Button(new Rect(10, 100, 200, 50), "Dünger eingeben"))
            Application.LoadLevel(1);
        if (GUI.Button(new Rect(10, 150, 200, 50), "Pflanzenschutzmittel eingeben"))
            Application.LoadLevel(2);
        if (GUI.Button(new Rect(10, 200, 200, 50), "Feldarbeiten eingeben"))
            Application.LoadLevel(3);
        if (GUI.Button(new Rect(10, 250, 200, 50), "Kosten anzeigen"))
            Application.LoadLevel(4);
        if (GUI.Button(new Rect(10, 300, 200, 50), "DB anzeigen"))
            Application.LoadLevel(5);
        if (GUI.Button(new Rect(10, 350, 200, 50), "Nährstoffbilanz anzeigen"))
            Application.LoadLevel(6);
        if (GUI.Button(new Rect(10, 400, 200, 50), "Spiel neu starten"))
            PlayerPrefs.DeleteAll();

    }

    void DoMyWindow(int windowID)
    {
    
    }

    public void AnzeigeSchalterGeklickt()
    {
        if (anzeigeSchalter.isOn)
            ListeAnzeigen();
        else
        {
            NummerAnzeige.text = "";
            ParzellennameAnzeige.text = "";
            FlächeAnzeige.text = "";
            KulturAnzeige.text = "";

        }
    }
    public void Animation_anzeigen()
    {
        Application.LoadLevel(9);
    }
}

Hallo Leute

Versuche mit obigem Code vordefienierte Werte für die Variable "Area[ ]" anzuzeigen bei der Tasteneingabe "0". Leider funktioniert das nicht und es werden nur bereits in den Player-Prefs gespeicherte Werte angezeigt. Woran könnte das liegen? Bin dankbar für Antworten!

Gruss

Peachplayer

image.thumb.png.001eea4693353c2458efe3357eb904b3.png

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...